-- **********************************************************************
-- EOSN-MIB:    McDATA EOSN Enterprise MIB (SMIv2).
--
-- REVISION HISTORY
-- Date      PRG  Description
-- ======================================================================
-- Release 1.0
--
-- 14/05/04  vk   Adding embedded port log filter support
-- 22/03/05  vk   Adding VF related mib objects
-- 11/05/04  vk   Adding bbFspfAssignAllIslEqualCost  
-- 04/05/04  vk   Adding bbFcPath Table
-- 11/05/04  vk   Adding an enum unknown for bbPortStatus
-- 04/11/04  vk   Adding bbFiconSystemAlternateControlProhibitState
-- 07/01/04  xli  Adding bbFspfConnDomainWwn  
-- 06/18/04  xli  Renamed "sanera" to "eosn" 
-- 06/10/04  xli  Added 'noLight' enum for bbFcPortOperState
-- 05/17/04  xli  Removing bbFcPathTable
-- 05/17/04  vk   Adding support for improving port performance
-- 05/12/04  xli  Changing bbBoardFruPosition to Integer32
-- 05/10/04  xli  Removing zoning alias and changing the length of zone/zoneset 
-- 04/21/04  vk   Adding new field in sns lookup assist table
-- 04/16/04  vk   Adding new table for simple nameserver lookup
-- 03/10/04  yc   Moved optics info from fc port table to port table
-- 02/20/04  xli  Changed table indexing from 0-based to 1-based. 
-- 02/05/04  vk   Added distribution field for event log
-- 01/28/04  xli  Removed Fru OEM objects
-- 01/26/04  xli  Added 0x18 RNID objects
-- 01/06/04  yc   Added FICON group and port/fabric logs
-- 11/26/03  dhl  McDATA compatibility changes
-- 11/21/03  dhl  Added IP ACL group
-- 08/05/03  dhl  Added system health group and FC path group
-- 05/07/03  dhl  Added NDCLA and software upgrade group
-- 02/28/03  dhl  Added Diag group
-- 11/21/02  sto  Added Performance Monitoring group
-- 10/28/02  dhl  Added Software Inventory group
-- 09/16/02  sto  Added FTP group
-- 08/06/02  dhl  Added Zoning Alias objects 
-- 07/26/02  dhl  Added RSCN objects 
-- 06/28/02  dhl  Added Switch ACL and Port Binding group
-- 04/24/02  sto  Added Save/Restore group
-- 04/15/02  dhl  Added Licensing group
-- 03/28/02  dhl  Added FSPF group
-- 02/06/02  dhl  Added FC Zoning objects
-- 12/13/01  dhl  Added Fibre Channel and Sensor objects
-- 10/18/01  dhl  Added EventLog and AuditLog objects
-- 09/13/01  dhl  Added System and Port objects
-- 05/23/01  dhl  Added Configuration/Status objects
-- 04/06/01  dhl  Initial version
--
-- Copyright (c) 2003-2006 McDATA Corp.  All rights reserved.
-- Copyright (c) 2001-2003 Sanera Systems, Inc.  All rights reserved.
-- **********************************************************************
--
EOSN-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
    NOTIFICATION-TYPE, TimeTicks, IpAddress, 
    Counter32, Counter64, Integer32, 
    Unsigned32, Gauge32                         FROM SNMPv2-SMI

    TEXTUAL-CONVENTION, TruthValue, 
    RowStatus, DisplayString, TimeStamp         FROM SNMPv2-TC

    MODULE-COMPLIANCE, OBJECT-GROUP             FROM SNMPv2-CONF

    SnmpAdminString                             FROM SNMP-FRAMEWORK-MIB

    FcBbCredit, FcRxDataFieldSize,
    FcphVersion, MilliSeconds, MicroSeconds     FROM FIBRE-CHANNEL-FE-MIB

    BbRowStatusWithoutNotInService,
    BbFruCode, BbFruPosition, BbSlotType,
    BbSysOperStatus, BbDateAndTime,
    BbFcWWN, BbPortIndex, BbDomainId, 
    BbEventSeverity, BbEnabledStatus,
    BbResettableCounter32, BbPortType,
    BbZoningSource, BbBeaconingState,
    BbSlotNumber, BbPortNumber,
    BbPartitionNumber, BbPaddlePairID,
    BbSamplingInterval, BbPortList,
    BbObjectInstance, BbThresholdAlertCounterId ,
    CounterBasedGauge64,
    BbVfID, BbSecurityCategory,
    BbSecurityTriggerLevel                                      FROM EOSN-TC

    eosnModules, eosnMIB                       FROM EOSN-REG;


eosnModule MODULE-IDENTITY
        LAST-UPDATED    "0407011200Z"
        ORGANIZATION    "McDATA Corporation"
        CONTACT-INFO
        "       McDATA Corporation

        Postal: 370 San Aleso Ave
                Sunnyvale, CA  94086
                USA
 
           Tel: +1-408-734-6000
        E-mail: support@mcdata.com
           Web: www.mcdata.com

       "
    DESCRIPTION
        "This MIB module describes objects for the EOSn family products."
    REVISION    "0104060000Z"
    DESCRIPTION
        "Initial version."
    ::= { eosnModules 2 }


-- --------------------------------------------------------------------
-- McDATA EOSN OID assignments
-- --------------------------------------------------------------------

bbSystem        OBJECT IDENTIFIER ::= { eosnMIB 1 }
bbFru           OBJECT IDENTIFIER ::= { eosnMIB 2 }
bbBoard         OBJECT IDENTIFIER ::= { eosnMIB 3 }
bbPort          OBJECT IDENTIFIER ::= { eosnMIB 4 }
bbProtocols     OBJECT IDENTIFIER ::= { eosnMIB 5 }
bbService       OBJECT IDENTIFIER ::= { eosnMIB 6 }
bbEvents        OBJECT IDENTIFIER ::= { eosnMIB 7 }
bbSnmp          OBJECT IDENTIFIER ::= { eosnMIB 8 }

bbSysGeneral    OBJECT IDENTIFIER ::= { bbSystem 1 }
bbHardware      OBJECT IDENTIFIER ::= { bbSystem 2 }
bbDiag          OBJECT IDENTIFIER ::= { bbSystem 3 }
bbHealth        OBJECT IDENTIFIER ::= { bbSystem 4 }
bbAggregate     OBJECT IDENTIFIER ::= { bbSystem 5 }

bbFibreChannel  OBJECT IDENTIFIER ::= { bbProtocols 1 }
bbFicon         OBJECT IDENTIFIER ::= { bbProtocols 2 }

bbZoning        OBJECT IDENTIFIER ::= { bbService 1 }
bbFspf          OBJECT IDENTIFIER ::= { bbService 2 }
bbPartitioning  OBJECT IDENTIFIER ::= { bbService 3 }
bbPfe           OBJECT IDENTIFIER ::= { bbService 4 }
bbSaveRestore   OBJECT IDENTIFIER ::= { bbService 5 }
bbAccessControl OBJECT IDENTIFIER ::= { bbService 6 }   -- SANTegrity 1 ACL
bbIpAcl         OBJECT IDENTIFIER ::= { bbService 7 }   -- IP ACL
bbSwInventory   OBJECT IDENTIFIER ::= { bbService 8 }
bbPerf          OBJECT IDENTIFIER ::= { bbService 9 }
bbFtp           OBJECT IDENTIFIER ::= { bbService 10 }
bbAFD           OBJECT IDENTIFIER ::= { bbService 11 }
bbSantegrity2   OBJECT IDENTIFIER ::= { bbService 13 }   -- SANTegrity II
bbSantegrity1   OBJECT IDENTIFIER ::= { bbService 14 }   -- SANTegrity I
bbVfOsms        OBJECT IDENTIFIER ::= { bbService 15 }
nmru            OBJECT IDENTIFIER ::= { bbService 16 }

bbFcTraceRoute  OBJECT IDENTIFIER ::= { bbAFD 1 }
bbPortFencing   OBJECT IDENTIFIER ::= { bbAFD 2 }
fcPing          OBJECT IDENTIFIER ::= { bbAFD 3 }

bbLogs          OBJECT IDENTIFIER ::= { bbEvents 1 }
bbNotifyInfo    OBJECT IDENTIFIER ::= { bbEvents 2 }

------------------------------------------------------------------------
--
-- General System Info
--
------------------------------------------------------------------------

bbSysFirmwareVersion OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..24))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The system version number applies to the switch as a whole."
    ::= { bbSysGeneral 1 }

bbSysServicesVersion OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..24))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The services version number applies to this switch/partition."
    ::= { bbSysGeneral 2 }

bbSysCommand OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),
        switchover(2),
        shutdownSystem(3),
        shutdownStandbyCTP(4),
        restartSystem(5),
        restartStandbyCTP(6)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to issue a command to this system.
        Setting it to 'none' has no effect, and when it is retrieved
        the value will always be 'none'. In case of nDP, only admin
        partition can perform system commands."
    ::= { bbSysGeneral 3 }

bbSysIpAddress OBJECT-TYPE
    SYNTAX      IpAddress 
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The system IP address."
    ::= { bbSysGeneral 4 }

bbSysNetMask OBJECT-TYPE
    SYNTAX      IpAddress 
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The system network mask. This object can only be changed from
        the admin partition."
    ::= { bbSysGeneral 5 }

bbSysGatewayIpAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The system gateway IP address. This object can only be changed 
        from the admin partition."
    ::= { bbSysGeneral 6 }

bbSysCalendarTime OBJECT-TYPE
    SYNTAX      BbDateAndTime
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The calendar time on the system. 
        The input format for SET is: YYYY-MM-DD,HH:MM:SS"
    ::= { bbSysGeneral 7 }

bbSysSummerTimezoneName OBJECT-TYPE
    SYNTAX        DisplayString (SIZE (0..50))
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION   
        "Summertime time zone name for display purposes."
    ::= { bbSysGeneral 8 }

bbSysTimezoneName OBJECT-TYPE
    SYNTAX        DisplayString (SIZE (0..50))
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION   
        "Time zone name for display purposes."
    ::= { bbSysGeneral 9 }

bbSysTimezoneOffsetHour OBJECT-TYPE
    SYNTAX        INTEGER (-12..13)
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION   
        "Time offset (Hour) from Greenwich Mean Time."
    ::= { bbSysGeneral 10 }

bbSysTimezoneOffsetMinute OBJECT-TYPE
    SYNTAX        INTEGER (0..59)
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION   
        "Time offset (Minutes) from Greenwich Mean Time."
    ::= { bbSysGeneral 11 }

bbSysIsAdminPartition OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "This object indicates whether the current partition is the
       admin partition."
    ::= { bbSysGeneral 12 }

bbSysAdminIpAddress OBJECT-TYPE
    SYNTAX      IpAddress 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The IP address of the admin partition."
    ::= { bbSysGeneral 13 }

bbSysPartitionId OBJECT-TYPE
    SYNTAX      BbPartitionNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The partition number of this partition."
    ::= { bbSysGeneral 14 }

bbSysPartitionStatus OBJECT-TYPE
    SYNTAX INTEGER {
        unknown(1),
        standAlone(2),
        active(3),
        standbySyncing(4),
        standbyReady(5),
        outOfService(6)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The status of this partition."
    ::= { bbSysGeneral 15 }

bbSysErrorState OBJECT-TYPE
    SYNTAX INTEGER {
        ok(1),
        error(2),
        clear(3)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The system error light state. To clear the error light, use
        clear(3). Only clear(3) is valid for a SET, ok(1) and
        error(2) are for status. Only users of the admin partition
        can do a clear(3), but all partitions can view the state."
    ::= { bbSysGeneral 16 }

bbSysBeaconing OBJECT-TYPE
    SYNTAX      BbBeaconingState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Sets switch beaconing on and off."
    ::= { bbSysGeneral 17 }

bbSysTypeNum OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The ASCII type number of the switch."
    ::= { bbSysGeneral 18 }

bbSysModelNum OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The ASCII model number of the switch."
    ::= { bbSysGeneral 19 }

bbSysMfg OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The ASCII manufacturer of the switch."
    ::= { bbSysGeneral 20 }

bbSysPlantOfMfg OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The ASCII plant of manufacturer of the switch."
    ::= { bbSysGeneral 21 }

bbSysEcLevel OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The ASCII EC level ID of the switch."
    ::= { bbSysGeneral 22 }

bbSysSerialNum OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The ASCII system serial number of the switch."
    ::= { bbSysGeneral 23 }

bbSysOperStatus OBJECT-TYPE
    SYNTAX      BbSysOperStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The current operational status of the switch."
    ::= { bbSysGeneral 24 }

bbSysSwitchName OBJECT-TYPE         
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-write         
    STATUS      current
    DESCRIPTION  
        "The ASCII name of the switch."
    ::= { bbSysGeneral 25 }
   
bbSysSwitchId OBJECT-TYPE         
    SYNTAX      OCTET STRING (SIZE (8))         
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  
        "The Worldwide Name of the switch."    
    ::= { bbSysGeneral 26 }

bbSysSwitchInfo OBJECT-TYPE         
    SYNTAX      DisplayString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION  
        "Additional system info of the switch."
    ::= { bbSysGeneral 27 }

bbSysOemId OBJECT-TYPE         
    SYNTAX      OCTET STRING (SIZE (1..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  
        "The ASCII name of the OEM partner that produced the switch."
    ::= { bbSysGeneral 28 }

bbSysOemCode OBJECT-TYPE         
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  
        "The OEM partner code that produced the switch."
    ::= { bbSysGeneral 29 }

bbSysOemSerialNum OBJECT-TYPE         
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  
        "The serial number of the switch assigned by the OEM partner."
    ::= { bbSysGeneral 30 }

bbSysOemProductName OBJECT-TYPE         
    SYNTAX      DisplayString (SIZE (1..24))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  
        "The product name of the switch assigned by the OEM partner."
    ::= { bbSysGeneral 31 }

bbSysSyncTime OBJECT-TYPE
    SYNTAX      BbDateAndTime
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Synchronizes the calendar time on the system with time
        provided. If the delta between system time and provided
        time is greater than 10 seconds, create an auditlog entry.
        The input format for SET is: YYYY-MM-DD,HH:MM:SS"
    ::= { bbSysGeneral 32 }

bbSysModelVariant OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The model variant of the switch."
    ::= { bbSysGeneral 33 }

------------------------------------------------------------------------
--
-- System Hardware Info
--
------------------------------------------------------------------------

-- board temperature sensors

bbNumBoardTempSensors OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of sensors in the board temperature sensor table."
    ::= { bbHardware 1 }

bbBoardTempSensorTable OBJECT-TYPE
    SYNTAX              SEQUENCE OF BbBoardTempSensorEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The table of board temperature sensor entries."
    ::= { bbHardware 2 }

bbBoardTempSensorEntry OBJECT-TYPE
    SYNTAX              BbBoardTempSensorEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "Each entry contains the information for a specific sensor."
    INDEX   { 
                bbBoardTempSensorSlotType,
                bbBoardTempSensorSlotIndex,
                bbBoardTempSensorIndex
            }
    ::= { bbBoardTempSensorTable 1 }

BbBoardTempSensorEntry ::= 
    SEQUENCE {
        bbBoardTempSensorSlotType       BbSlotType,
        bbBoardTempSensorSlotIndex      Integer32,
        bbBoardTempSensorIndex          Integer32,
        bbBoardTempSensorStatus         INTEGER,
        bbBoardTempSensorValue          Integer32,
        bbBoardTempSensorInfo           DisplayString
    }

bbBoardTempSensorSlotType OBJECT-TYPE
    SYNTAX      BbSlotType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The unique number indicating the type of this slot."
    ::= { bbBoardTempSensorEntry 1 }

bbBoardTempSensorSlotIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A unique index for the board, it equals the slot number + 1."
    ::= { bbBoardTempSensorEntry 2 }

bbBoardTempSensorIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION     
        "The temperature sensor number on this board."
    ::= { bbBoardTempSensorEntry 3 }

bbBoardTempSensorStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                  unknown       (1),
                  faulty        (2),
                  below-min     (3),
                  nominal       (4),
                  above-max     (5)
            }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "The current status of the temperature sensor."
    ::= { bbBoardTempSensorEntry 4 }

bbBoardTempSensorValue OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "The current temperature value (reading), in Celsius, of the 
        sensor.  The value, -2147483648, represents an unknown quantity. 
        It also means that the sensor does not have the capability to 
        measure the actual value."
    ::= { bbBoardTempSensorEntry 5 }

bbBoardTempSensorInfo OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Additional displayable information on the sensor."
    ::= { bbBoardTempSensorEntry 6 }

        -- ****************************************
        -- Slot table
        -- ****************************************

bbSlotTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbSlotEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for LIM slots."
    ::= { bbHardware 3 }

bbSlotEntry OBJECT-TYPE
    SYNTAX      BbSlotEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the LIM slot table."
    INDEX { bbSlotIndex }
    ::= { bbSlotTable 1}

BbSlotEntry ::=
    SEQUENCE {
        bbSlotIndex                     BbSlotNumber,
        bbSlotIsCurrentPartitionOwner   TruthValue
    }

bbSlotIndex OBJECT-TYPE
    SYNTAX      BbSlotNumber
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A unique index to identify this LIM slot. It equals the slot number + 1."
    ::= { bbSlotEntry 1 }

bbSlotIsCurrentPartitionOwner OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The object indicates whether this partition is the 
        owner of this LIM slot."
    ::= { bbSlotEntry 2 }

------------------------------------------------------------------------
--
-- System Diag Group
--
------------------------------------------------------------------------

bbLoopbackTestTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbLoopbackTestEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of loopback tests. Simultaneous tests can be run, 
        one per paddle pair."
    ::= { bbDiag 1 }

bbLoopbackTestEntry OBJECT-TYPE
    SYNTAX      BbLoopbackTestEntry 
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the loopback test table."
    INDEX   { bbLoopbackTestSlotIndex, bbLoopbackTestPaddlePairIndex }
    ::= { bbLoopbackTestTable 1 }

BbLoopbackTestEntry ::=
    SEQUENCE {
        bbLoopbackTestSlotIndex         BbSlotNumber,
        bbLoopbackTestPaddlePairIndex   BbPaddlePairID,
        bbLoopbackTestPortBitmap        OCTET STRING,
        bbLoopbackTestType              INTEGER,
        bbLoopbackTestAction            INTEGER,
        bbLoopbackTestDuration          Integer32,
        bbLoopbackTestDataPattern       OCTET STRING,
        bbLoopbackTestTimeElapsed       TimeTicks,
        bbLoopbackTestStatus            INTEGER,
        bbLoopbackTestTxCount           Counter32,
        bbLoopbackTestRxErrors          Counter32
    }

bbLoopbackTestSlotIndex OBJECT-TYPE
    SYNTAX      BbSlotNumber
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The slot of the port(s) to perform this loopback test. 
        This number equals the slot number + 1."
    ::= { bbLoopbackTestEntry 1 }

bbLoopbackTestPaddlePairIndex OBJECT-TYPE
    SYNTAX      BbPaddlePairID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The paddle pair of the port(s) to perform this loopback test."
    ::= { bbLoopbackTestEntry 2 }

bbLoopbackTestPortBitmap OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (2))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "The bitmap of the ports to perform this loopback test. Bit 0 (the least 
        significant bit) indicates port 0."
    ::= { bbLoopbackTestEntry 3 }

bbLoopbackTestType OBJECT-TYPE
    SYNTAX INTEGER {
        local(1),
        remote(2)
    }   
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The type of loopback test to perform."
    ::= { bbLoopbackTestEntry 4 }

bbLoopbackTestDataPattern OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (4))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The data pattern of the loopback test to run."
    ::= { bbLoopbackTestEntry 5 }

bbLoopbackTestAction OBJECT-TYPE
    SYNTAX INTEGER {
        start(1),
        abort(2)
     }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "To start or abort this loopback test."
    ::= { bbLoopbackTestEntry 6 }

bbLoopbackTestDuration OBJECT-TYPE
    SYNTAX      Integer32 
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The duration of the loopback test to run."
    ::= { bbLoopbackTestEntry 7 }

bbLoopbackTestTimeElapsed OBJECT-TYPE
    SYNTAX      TimeTicks 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The elapsed time in seconds since start of this loopback test."
    ::= { bbLoopbackTestEntry 8 }

bbLoopbackTestStatus OBJECT-TYPE
    SYNTAX INTEGER {
        inProgress(1),
        idle(2),
        passed(3),
        failed(4),
        testAborted(5),
        testUnableToStart(6)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The status of this loopback test."
    ::= { bbLoopbackTestEntry 9 }

bbLoopbackTestTxCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets transmitted during the loopback test."
    ::= { bbLoopbackTestEntry 10 }

bbLoopbackTestRxErrors OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of errored packets received during the loopback test."
    ::= { bbLoopbackTestEntry 11 }

------------------------------------------------------------------------
--
-- Nmru Information
-- Has information about nmru connection
------------------------------------------------------------------------
nmruGeneral OBJECT IDENTIFIER ::= { nmru 1 }

nmruMaxSupported OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "The maximum number of NMRU connections supported on the system.
         It represents the tcp/ip connection on an NMRU port.  Nmru connection
         is one per partition."
    ::= { nmruGeneral 1 }

nmruConnTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbNmruConnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for nmru connection."
    ::= { nmruGeneral 2 }

nmruConnEntry OBJECT-TYPE
    SYNTAX      BbNmruConnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the NMRU connection table."
    INDEX   { nmruConnIndex }
    ::= { nmruConnTable 1}

BbNmruConnEntry ::=
    SEQUENCE {
        nmruConnIndex                     BbPartitionNumber,
        nmruConnEfcmServer                IpAddress,
        nmruConnState                       INTEGER
    }

nmruConnIndex OBJECT-TYPE
    SYNTAX      BbPartitionNumber
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A unique index to identify this partition."
    ::= { nmruConnEntry 1 }

nmruConnEfcmServer OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The IP address of the application connecting to the nmru port.
         The port number is 2049 which is a secured port.  EFCM server
         uses ssl to connect to this port. If the value is 0.0.0.0,
         then it means the port is not connected."
    ::= { nmruConnEntry 2 }

nmruConnState OBJECT-TYPE
    SYNTAX INTEGER {
        closed(1),
        listen(2),
        connected(3)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The state of this connection."
    ::= { nmruConnEntry 3 }

------------------------------------------------------------------------
--
-- System Health
-- This entire group has been obsoleted
------------------------------------------------------------------------

bbHealthGeneral OBJECT IDENTIFIER ::= { bbHealth 1 }

bbHealthSwitchStatus OBJECT-TYPE
    SYNTAX INTEGER {
        healthy(1),
        marginal(2),
        down(3)
    }
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION 
        "The overall status of the switch. 
        healthy:  all hardware functionalities intact.
        marginal: some failed components, but does not affect switch 
                  functionality, operator attention needed.
        down:     major issue. system may physically go down anytime 
                  if issue is not resolved."
    ::= { bbHealthGeneral 1 }

bbHealthSwitchHighAvailability OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION 
        "This object indicates whether switch hardware
         status supports high availability. If the switch
         has 2 CTPs it is expected to support high availability
         unless there are severe errors."
    ::= { bbHealthGeneral 2 }

bbHealthComponentTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbHealthComponentEntry
    MAX-ACCESS  not-accessible
    STATUS      obsolete
    DESCRIPTION
        "A table of component health status."
    ::= { bbHealthGeneral 3 }

bbHealthComponentEntry OBJECT-TYPE
    SYNTAX      BbHealthComponentEntry
    MAX-ACCESS  not-accessible
    STATUS      obsolete
    DESCRIPTION
        "An entry of the component health status table."
    INDEX   { bbHealthComponentIndex }
    ::= { bbHealthComponentTable 1}

BbHealthComponentEntry ::=
    SEQUENCE {
        bbHealthComponentIndex          Integer32,
        bbHealthComponentDescr          DisplayString,
        bbHealthComponentFruCode        BbFruCode,
        bbHealthComponentStatus         INTEGER,
        bbHealthComponentNumOk          Integer32,
        bbHealthComponentNumFailed      Integer32,
        bbHealthComponentNumMissing     Integer32
    }

bbHealthComponentIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      obsolete
    DESCRIPTION
        "The index for this component."
    ::= { bbHealthComponentEntry 1 }

bbHealthComponentDescr OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..32))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "A simple description of this component."
    ::= { bbHealthComponentEntry 2 }

bbHealthComponentFruCode OBJECT-TYPE
    SYNTAX      BbFruCode
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The Fru code of the component."
    ::= { bbHealthComponentEntry 3 }

bbHealthComponentStatus OBJECT-TYPE
    SYNTAX INTEGER {
        healthy(1),
        marginal(2),
        down(3)
    }
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The health status of this component."
    ::= { bbHealthComponentEntry 4 }

bbHealthComponentNumOk OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The number of OK instances for this component."
    ::= { bbHealthComponentEntry 5 }

bbHealthComponentNumFailed OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The number of failed instances for this component."
    ::= { bbHealthComponentEntry 6 }

bbHealthComponentNumMissing OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The number of missing instances for this component."
    ::= { bbHealthComponentEntry 7 }


------------------------------------------------------------------------
--
-- Fibre Channel Port aggregated objects
--
------------------------------------------------------------------------
bbPortAggr    OBJECT IDENTIFIER ::= { bbAggregate 1 }
bbPaddleZoningType    OBJECT IDENTIFIER ::= { bbAggregate 2 }

bbPortAggrSetAttribute  OBJECT-TYPE
    SYNTAX INTEGER  {
       adminState(1),
       adminType(2),
       thinSpeed(3),
       thinBbCredit(4),   
       thickbbCredit(5) 
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
    " This object is used to set a particular port attribute, for a given
     list of ports (bbPortAggrSetList) to a value contained in
     bbPortAggrSetValue object.  It need to be used along with 
     bbPortAggrSetValue and bbPortAggrSetList in the same pdu."
    ::= { bbPortAggr 1 }

bbPortAggrSetValue  OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
    "The value that needs to be set & follows the enum defined for it in
     bbFcPortTable.  Need to be used in conjunction with bbPortAggrSetAttribute
     & bbPortAggrSetList. Example setting the command to adminState, 
     the value needs to be unblocked(2) or blocked(1)"
    ::= { bbPortAggr 2 }

bbPortAggrSetList  OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE(32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
    "This object is a bitmap for each port.  32 octets are returned.  Each octet 
    (typically represented by two hexadecimal digits) is a bit map for 8 ports.  
    The octets are read from left to right.  Ports 7-0 are represented by the first 
    (left-most) octet, ports 15-8 are represented by the next octet to the right, etc.

    Within an octet, the bits are read from right to left.  The right-most bit within 
    an octet is the lowest-numbered port, and the left-most bit within an octet is the 
    highest-numbered port.

    Example (spaces inserted for clarity - the octet string is normally represented by 
    64 hex digits in one continuous string):

    octet #   0  1  2  3  4  5  6  7  8  9 10 11  12  13  14   15   16   17   18   19   20   
    21   22   23   24   25   26   27   28  29  30  31

    octets   00 00 00 00 00 00 00 00 00 00 00 00  00  00  00   00   00   00   00   00   08   
    00   00   00   00   00   00   00   00  00  00  00

    high port 7 15 23 31 39 47 55 63 71 79 87 95 103 111 119  127  135  143  151  159  167  
    175  183  191  199  207  215  223  231 239 247 255

    low port  0  8 16 24 32 40 48 56 64 72 80 88  96 104 112  120  128  136  144  152  160  
    168  176  184  192  200  208  216  224 232 240 248

    In this example, octet 20 has the value '08'.  This value represents ports 167-160.  
    Port 167 is represented by the left-most bit of '08', and port 160 is represented by 
    the right-most bit of '08'.  In this case, port 163 is represented has its bit value 
    set to '1'; the other ports have their bit values set to '0'" 
    ::= { bbPortAggr 3 }

bbPortAggrGetList  OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE(32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "This object is a bitmap for each port This will return a value that 
     matches the criterion set by bbPortAggrSetValue & bbPortAggrSetAttribute."
    ::= { bbPortAggr 4 }

bbPaddleHardZoning OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is a bitmap for each paddle which is currently enforcing
         Hard zoning.  If the bit is set to 1 it means Hard zoning if the 
         bit is set to 0 then it means Soft Zoning being enforced.  The bit
         numbering is from right to the left.  The 0th bit is paddle number 0
         and 31st bit is paddle number 31."
    ::= { bbPaddleZoningType 1 }




------------------------------------------------------------------------
--
-- FRU Group
--
------------------------------------------------------------------------

bbFruTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFruEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION    
        "A table that contains one entry for each module."
    ::= { bbFru 1 }

bbFruEntry OBJECT-TYPE
    SYNTAX      BbFruEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION    
        "An entry containing the service parameters of the module."
    INDEX   { bbFruCode, bbFruPosition }
    ::= { bbFruTable 1 }

BbFruEntry ::= SEQUENCE {
     bbFruCode              BbFruCode,
     bbFruPosition          BbFruPosition,
     bbFruStatus            INTEGER,
     bbFruPartNumber        DisplayString,
     bbFruSerialNumber      DisplayString,
     bbFruPowerOnHours      Counter32,
     bbFruTestDate          BbDateAndTime,
     bbFruErrorCode         Integer32,
     bbFruOemPartNumber     DisplayString
}

bbFruCode OBJECT-TYPE
    SYNTAX      BbFruCode
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION    
        "Field Replaceable Unit.  A hardware component of the product that 
        is replaceable as an entire unit. Each module defined in this MIB 
        has a fixed FRU code."
    ::= { bbFruEntry 1 }

bbFruPosition OBJECT-TYPE
    SYNTAX      BbFruPosition
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION    
        "This object identifies the position of the module. The value 
        starts from 1 to the maximum number of the modules that can be 
        contained within this switch."
    ::= { bbFruEntry 2 }

bbFruStatus OBJECT-TYPE
    SYNTAX INTEGER {
        unknown(0),
        active(1),
        backup(2),
        update-busy(3),
        failed(4)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "This object identifies the operational status of the module. 
        The unknown(0) state indicates no information is known about 
        the module, the active(1) state indicates that the current 
        module is active; The backup(2) state indicates that the back 
        up module is used; The update-busy (3) state indicates that 
        the module is in the updating process; The failed(4) state 
        indicates that the current module is failed."
    ::= { bbFruEntry 3 }

bbFruPartNumber OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The part number of the module."
    ::= { bbFruEntry 4 }

bbFruSerialNumber OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The serial number of the module."
    ::= { bbFruEntry 5 }

bbFruPowerOnHours OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The number of the hours that the FRU has been in operation."
    ::= { bbFruEntry 6 }

bbFruTestDate OBJECT-TYPE
    SYNTAX      BbDateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The final test date of the module."
    ::= { bbFruEntry 7 }

bbFruErrorCode OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The last error code on this FRU."
    ::= { bbFruEntry 8 }

bbFruOemPartNumber OBJECT-TYPE         
    SYNTAX      DisplayString (SIZE (1..24))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION  
        "The part number of the FRU assigned by the OEM partner."
    ::= { bbFruEntry 9 }

------------------------------------------------------------------------
--
-- System Board/Port Objects
--
------------------------------------------------------------------------

        -- ****************************************
        -- Generic Board Objects
        -- ****************************************
bbBoardTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbBoardEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of boards which belongs to this device."
    ::= { bbBoard 1 }

bbBoardEntry OBJECT-TYPE
    SYNTAX      BbBoardEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the Board table."
    INDEX   { bbBoardSlotType, bbBoardSlotPosition }
    ::= { bbBoardTable 1 }

BbBoardEntry ::=
    SEQUENCE {
        bbBoardSlotType         BbSlotType,
        bbBoardSlotPosition     Integer32,
        bbBoardFruCode          BbFruCode,
        bbBoardFruPosition      Integer32,
        bbBoardDescr            SnmpAdminString,
        bbBoardOperStatus       INTEGER,
        bbBoardHwVersion        DisplayString,
        bbBoardSwVersion        DisplayString,
        bbBoardPromVersion      DisplayString,
        bbBoardConfigChange     DisplayString,
        bbBoardCommand          INTEGER,
        bbBoardRole             INTEGER,
        bbBoardInformation      DisplayString,
        bbBoardBeaconing        BbBeaconingState
    }

bbBoardSlotType OBJECT-TYPE
    SYNTAX      BbSlotType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The unique number indicating the type of this slot."
    ::= { bbBoardEntry 1 }

bbBoardSlotPosition OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The position for this type of slot. It ranges from
         1-8 for LIM, 
         1-2 for CTP,
         1-4 for SWM." 
    ::= { bbBoardEntry 2 }

bbBoardFruCode OBJECT-TYPE
    SYNTAX      BbFruCode
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The system-wide FRU code for this board."
    ::= { bbBoardEntry 3 }

bbBoardFruPosition OBJECT-TYPE
    SYNTAX      Integer32(0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The FRU position of this board. The value starts from 1 to the maximum 
        number of the cards that can be contained within this switch."
    ::= { bbBoardEntry 4 }

bbBoardDescr OBJECT-TYPE
    SYNTAX  SnmpAdminString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
        "A string containing information about this board.  
        This string should include the name of the manufacturer 
        and the product name.  The SPIF, SPP, FLC, BSC, and SNX 
        revisions are also displayed, when applicable."
    ::= { bbBoardEntry 5 }

bbBoardOperStatus OBJECT-TYPE
    SYNTAX INTEGER {
        poweredOff(1),
        init(2),
        online(3),
        degraded(4),
        failed(5),
        diags(6)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current state of this board."
    ::= { bbBoardEntry 6 }

bbBoardHwVersion  OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..24))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The hardware version of this board described in the format
        <major rev>.<minor rev>. For example: 1.0"
    ::= { bbBoardEntry 7 }

bbBoardSwVersion  OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..24))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The software version of this board described in the
        format <major rev>.<minor rev>.<build number>.  For example, 1.0.6"
     ::= { bbBoardEntry 8 }

bbBoardPromVersion  OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..24))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The PROM software  version described in the format
         <major rev>.<minor rev>. For example: 1.0.6"
     ::= { bbBoardEntry 9 }

bbBoardConfigChange  OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The calendar time when the configuration was last changed."
    ::= { bbBoardEntry 10 }

bbBoardCommand OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),
        enable(2),
        disable(3),
        restart(4),
        flash(5),
        upgrade(6)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to perform a command on this board. For CTP,
        only enable(2) is allowed.

        enable - places a previously disabled board back into service.  
        Note that an enable command is not required for hotplug (unless 
        a prior disable).  

        disable - takes a board (running or not) out of service permanently.
        The board may be removed and re-inserted (or replaced with another 
        board), but it will not be started until an enable command.  

        restart - takes a running board out of service and then immediately
        places it back into service.   This is used to force a board
        to run new firmware.  Restart on a disabled board is an error 
        (must use enable).

        flash - flash the line module with FC image. 
                    Does not apply to CTPs and SWMs.

        upgrade - NDCLA the line module.

        Setting it to 'none' has no effect, and when this object is 
        retrieved the value will always be 'none'."
    ::= { bbBoardEntry 11 }

bbBoardRole OBJECT-TYPE
    SYNTAX INTEGER {
        notApplicable(1),
        standAlone(2),
        active(3),
        standbySyncing(4),
        standbyReady(5),
        outOfService(6)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The role of the CTPs for redundancy and other RAS features."
    ::= { bbBoardEntry 12 }

bbBoardInformation  OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Additional information about this particular board in
        the system."  
    ::= { bbBoardEntry 13 }

bbBoardBeaconing OBJECT-TYPE
    SYNTAX      BbBeaconingState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Sets beaconing on and off on this board."
    ::= { bbBoardEntry 14 }

        -- ****************************************
        -- The Port Table
        -- ****************************************
bbPortTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BbPortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table of physical port information."
    ::= { bbPort 1 }

bbPortEntry OBJECT-TYPE
    SYNTAX     BbPortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A set of physical port entries."
    INDEX { bbPortIndex }
    ::= { bbPortTable 1 }

BbPortEntry ::=
    SEQUENCE {
        bbPortIndex         BbPortIndex,
        bbPortType          BbPortType,
        bbPortStatus        INTEGER,
        bbPortBeaconing     BbBeaconingState,

        -- optics information
        bbPortConnector     INTEGER,
        bbPortDistance      BITS,
        bbPortXceiverType   BITS,
        bbPortMedia         BITS,
        bbPortSpeedCap      BITS,
        bbPortReasonCode    INTEGER,

        -- extended optics information
        bbPortIdentifier                INTEGER,
        bbPortExtendedIdentifier        INTEGER,
        bbPortLinkLength                OCTET STRING,
        bbPortVendorName                DisplayString,
        bbPortVendorPartNumber          DisplayString,
        bbPortVendorRevisionLevel       DisplayString,
        bbPortVendorSerialNumber        DisplayString,
        bbPortVendorDateCode            DisplayString,

        bbPortPomHealth             INTEGER,
        bbPortPomAux1Type           INTEGER,
        bbPortPomAux2Type           INTEGER
    }

bbPortIndex OBJECT-TYPE
    SYNTAX              BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The index used to query the port table. It equals the port number +1."
        ::= { bbPortEntry 1 }

bbPortType OBJECT-TYPE
    SYNTAX      BbPortType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The type for this port."
    ::= { bbPortEntry 2 }

bbPortStatus OBJECT-TYPE
    SYNTAX INTEGER {
        up(1),
        down(2),
        failed(3),
        opticsNotPresent(4),
        unknown(5)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The physical status of this port. The values are:
            up - the port is active and ready for link up
            down - the port is not ready, such as due to ASIC out of service
            failed - the port or its optics failed
            opticsNotPresent - the port does not have an optics present
        "
    ::= { bbPortEntry 3 }

bbPortBeaconing OBJECT-TYPE
    SYNTAX      BbBeaconingState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Sets beaconing on and off on this port."
    ::= { bbPortEntry 4 }

bbPortConnector OBJECT-TYPE
    SYNTAX      INTEGER {
                    unknown       (1),
                    lc            (2),
                    mt-rj         (3),
                    mu            (4),
                    hssdc-ii      (5)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Supported connector types of the port."
    ::= { bbPortEntry 5 }

bbPortDistance OBJECT-TYPE
    SYNTAX      BITS {
                    unknown(0),
                    mediumLongDistance(3),
                    longDistance(4),
                    intermediateDistance(5),
                    shortDistance(6),
                    veryLongDistance(7)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "A bitmap to represent distance types of the Port."
    ::= { bbPortEntry 6 }

bbPortXceiverType OBJECT-TYPE
    SYNTAX      BITS {
                    unknown(0),
                    elecIntraEnclosure(1),
                    elecInterEnclosure(2),
                    longWaveLaser-LL(3),
                    shortWaveLaser-OFC(4),
                    shortWaveLaser-noOFC(5),
                    longWaveLaser-LC(6)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The type of the installed transceiver."
    ::= { bbPortEntry 7 }

bbPortMedia OBJECT-TYPE
    SYNTAX      BITS {
                    twinAxialPair(0),
                    shieldedTwistedPair(1),
                    miniatureCoax(2),
                    videoCoax(3),
                    multiMode62Dot5m(4),
                    multiMode50m(5),
                    extendedBandWidthMultiMode50m(6),
                    singleMode(7)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "A bitmap to represent the media of the installed transceiver."
    ::= { bbPortEntry 8 }

bbPortSpeedCap OBJECT-TYPE
    SYNTAX      BITS {
                    speed100MBS(0),
                    speed200MBS(2),
                    speed400MBS(4),
                    speed1200MBS(6)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "A bitmap to represent the speed capability of the 
        installed transceiver."
    ::= { bbPortEntry 9 }

bbPortReasonCode OBJECT-TYPE
    SYNTAX      INTEGER{
        none(1),
        unknown(2),
        asicOutOfService(3),
        txFault(4),
        tooManyInts(5),
        rxAsyncFifoPerr(6),
        rxSyncFifoPerr(7),
        rxAsyncDataFifoOverrun(8),
        rxAsyncStatusFifoOverrun(9),
        txDataFifoPerr(10),
        txRewriteFifoPerr(11),
        txFifoUnderrun(12),
        txCRCErr(13),
        tooManyGbicEvents(14),
        pfiRxErrs(15),
        pfiRxErrsInternal(16),
        tooManyDisparityErr(17),
        invalid10GPaddleConfig(18)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The reason code for port status up, down, failed)."
    ::= { bbPortEntry 10 }

bbPortIdentifier OBJECT-TYPE
    SYNTAX INTEGER {
        unknown(0),
        gbic(1),
        moduleOrConnector(2),
        sfp(3),
        xbi(4),
        xenpak(5),
        xfp(6),
        xff(7),
        xfp-e(8),
        xpak(9),
        x2(10),
        vendorSpecific(11)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies the physical device of serial transceiver."
    ::= { bbPortEntry 11 }

bbPortExtendedIdentifier OBJECT-TYPE
    SYNTAX INTEGER {
        gbicModDefUnknown(0),
        gbicModDef1(1),
        gbicModDef2(2),
        gbicModDef3(3),
        gbicModDef4(4),
        gbicModDef5(5),
        gbicModDef6(6),
        gbicModDef7(7)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object provides additional information about the serial 
        transceiver.  It allows the gbic to explictly specify compliance.
        For SFP the value is gbicModDef4.   For XFP the value is
        gbicModDefUnknown as it cannot be determined."
    ::= { bbPortEntry 12 }

bbPortLinkLength OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE (4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "Actual Length supported for SFP
         First Byte (LSB) - link length supported by transceiver using single 
                    mode fiber (9m). The value is in kilometers (km), value 255 
                    means link length greater than 254 km.
         Second Byte - link length supported by transceiver using single 
                    mode fiber (9m). The value is in units of 100 meters, 
                    value 255 means link length greater than 25.4 km.
         Third Byte - link length supported by transceiver using 50 micron
                    multi-mode fiber (50m). The value is in units of 
                    10 meters, value 255 means link length greater than 2.54 km.
         Fourth Byte (MSB)- link length supported by transceiver using 62.5 
                    micron multi-mode fiber (62.5m). The value is in units of 
                    10 meters, value 255 means link length greater than 2.54 km.

        Actual Length supported for XFP
         First Byte (LSB) - link length supported by transceiver using single 
                    mode fiber (SMF). The value is in kilometers (km), 
                    value 255 means link length greater than 254 km.
         Second Byte - link length supported by transceiver using extended
                    bandwidth 50mm multi mode fiber (E-50m). The value is in 
                    units of 2 meters, value 255 means link length greater 
                    than 508m.
         Third Byte - link length supported by transceiver using 50 micron
                    multi-mode fiber (50m). The value is in units of 
                     meters, value 255 means link length greater than 254m.
         Fourth Byte (MSB)- link length supported by transceiver using 62.5 
                    micron multi-mode fiber (62.5m). The value is in units of 
                    1 meters, value 255 means link length greater than 254m.


         If value is 0 for any of the byte, it means the transceiver 
         doesn not support that type of fiber or the length information 
         must be determined from port distance value in transceiver technology.
         "
    ::= { bbPortEntry 13 }

bbPortVendorName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..16))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies the Vendor Name."
    ::= { bbPortEntry 14 }

bbPortVendorPartNumber OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..16))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Vendor part number or product name."
    ::= { bbPortEntry 15 }

bbPortVendorRevisionLevel OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Vendor's product revision number.  A value of all zero or null value
        in the 4-byte field indicates that the vendor Rev is unspecified."
    ::= { bbPortEntry 16 }

bbPortVendorSerialNumber OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..16))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Vendor's product serial number.   
        A value of all zero or null value in the 16-byte field indicates 
        that the vendor SN is unspecified."
    ::= { bbPortEntry 17 }

bbPortVendorDateCode OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (8))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A 8-byte field that contains the vendor's date code in ASCII 
        characters."
    ::= { bbPortEntry 18 }

bbPortPomHealth OBJECT-TYPE
    SYNTAX INTEGER {
        noInfo(1),
        normal(2),
        warning(3),
        alarm(4)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates overall status of the Digital Diagnostic 
        Measurements for the optics.  If none of the Digital Diagnostic 
        Measurements have exceeded the warning or alarm thresholds, then this 
        value will be normal.  If any one or more of the Digital Diagnostic 
        Measurements have exceed one of the warning thresholds, but none 
        have exceeded an alarm threshold, then this value will be Warning.  If 
        any one or more of the Digital Diagnostic Measurements have exceeded 
        an alarm threshold, then this value will be alarm.  If the optics 
        hardware doesn't support Digital Diagnostics, or the Digital Diagnostic 
        Measurements have not be gathered for the first time, then this value 
        will be noInfo."
    ::= { bbPortEntry 19 }

bbPortPomAux1Type OBJECT-TYPE
    SYNTAX INTEGER {
        notImplemented(1),
        apdBiasVoltage(2),      -- 10 mV
        tecCurrent(3),          -- mA
        laserTemperature(4),    -- Centigrade
        laserWavelength(5),
        supplyVoltage5V(6),
        supplyVoltage3dot3V(7),
        supplyVoltage1dot8V(8),
        supplyVoltageNegative5dot2V(9),
        supplyCurrent5V(10),
        supplyCurrent3dot3V(11),
        supplyCurrent1dot8V(12),
        supplyCurrentNegative5dot2V(13)
    }
    MAX-ACCESS   read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the auxiliary 1 input type, for XFP only."
    ::= { bbPortEntry 20 }

bbPortPomAux2Type OBJECT-TYPE
    SYNTAX INTEGER {
        notImplemented(1),
        apdBiasVoltage(2),      -- 10 mV
        tecCurrent(3),          -- mA
        laserTemperature(4),    -- Centigrade
        laserWavelength(5),
        supplyVoltage5V(6),
        supplyVoltage3dot3V(7),
        supplyVoltage1dot8V(8),
        supplyVoltageNegative5dot2V(9),
        supplyCurrent5V(10),
        supplyCurrent3dot3V(11),
        supplyCurrent1dot8V(12),
        supplyCurrentNegative5dot2V(13)
    }
    MAX-ACCESS   read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the auxiliary 2 input type, for XFP only."
    ::= { bbPortEntry 21 }

        -- ****************************************
        -- Predictive Optics Monitoring (POM)
        -- ****************************************

bbPomTable OBJECT-TYPE
--PSIM(Modif)     SYNTAX     SEQUENCE OF BbPortEntry
    SYNTAX     SEQUENCE OF BbPomEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table of Predictive Optics Monitoring information."
    ::= { bbPort 2 }

bbPomEntry OBJECT-TYPE
    SYNTAX     BbPomEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Predictive Optics Monitoring attributes."
    INDEX   { bbPomPortIndex , bbPomType }
    ::= { bbPomTable 1 }

BbPomEntry ::=
    SEQUENCE {
        bbPomPortIndex              BbPortIndex,
        bbPomType                   INTEGER,
        bbPomCurrValue              Integer32,
        bbPomThresholdWarningHigh   Integer32,
        bbPomThresholdWarningLow    Integer32,
        bbPomThresholdAlarmHigh     Integer32,
        bbPomThresholdAlarmLow      Integer32
    }

bbPomPortIndex  OBJECT-TYPE
    SYNTAX              BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The index used to query the pom table. It equals the physical port number +1."
        ::= { bbPomEntry 1 }

bbPomType OBJECT-TYPE
    SYNTAX INTEGER {
        temperature(1),     -- Centigrade
        voltage(2),         -- Volts
        current(3),         -- milli Amps
        txPower(4),         -- micro Watts
        rxPower(5),         -- micro Watts
        aux1(6),            -- for XFP only
        aux2(7)             -- for XFP only
    }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicates the type of reading."
    ::= { bbPomEntry 2 }

bbPomCurrValue OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "100th of centrigrade/volts/micro-watts/mill-amps"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object represents the current measurement reading,
        of type indicated in object bbPomType, on the optics."
    ::= { bbPomEntry 3 }

bbPomThresholdWarningHigh OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "100th of centrigrade/volts/micro-watts/mill-amps"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object represents the high warning threshold,
        of type indicated in object bbPomType, on the optics."
    ::= { bbPomEntry 4 }

bbPomThresholdWarningLow OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "100th of centrigrade/volts/micro-watts/mill-amps"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object represents the low warning threshold,
        of type indicated in object bbPomType, on the optics."
    ::= { bbPomEntry 5 }

bbPomThresholdAlarmHigh OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "100th of centrigrade/volts/micro-watts/mill-amps"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object represents the high alarm threshold,
        of type indicated in object bbPomType, on the optics."
    ::= { bbPomEntry 6 }

bbPomThresholdAlarmLow OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "100th of centrigrade/volts/micro-watts/mill-amps"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object represents the low alarm threshold,
        of type indicated in object bbPomType, on the optics."
    ::= { bbPomEntry 7 }



------------------------------------------------------------------------
--
-- Fibre Channel
--
------------------------------------------------------------------------

bbFcGeneral OBJECT IDENTIFIER ::= { bbFibreChannel 1 }
bbFcPort    OBJECT IDENTIFIER ::= { bbFibreChannel 2 }
bbFcPath    OBJECT IDENTIFIER ::= { bbFibreChannel 3 }
bbFcSns     OBJECT IDENTIFIER ::= { bbFibreChannel 4 }
bbFcOT      OBJECT IDENTIFIER ::= { bbFibreChannel 5 }
bbFcPaddlePair      OBJECT IDENTIFIER ::= { bbFibreChannel 6 }
bbVf        OBJECT IDENTIFIER ::= { bbFcGeneral 40 }


        -- ****************************************
        -- General FC
        -- ****************************************

bbFcSystemState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to enable and disable the Fibre Channel 
        subsystem. Configuration of some Fibre Channel objects requires 
        the Fibre Channel subsystem to be disabled first."
    ::= { bbFcGeneral 1 }

bbFcSwitchPriority OBJECT-TYPE
    SYNTAX INTEGER {
        alwaysPrincipal(1),
        neverPrincipal(2),
        dontcare(3)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The priority of this FC switch. The role can be always a principal 
        switch, never a principal switch, or don't care.

        A SET on this object requires all VF's to be disabled."
    ::= { bbFcGeneral 2 }

bbFcPreferredDomainID OBJECT-TYPE
    SYNTAX      BbDomainId
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "The preferred Fibre Channel domain ID of the switch.

        A SET on this object requires all VF's to be disabled."
    ::= { bbFcGeneral 3 }

bbFcActiveDomainID OBJECT-TYPE
    SYNTAX      BbDomainId
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "The active Fibre Channel domain ID of the switch."
    ::= { bbFcGeneral 4 }

bbFcAddressDomainID OBJECT-TYPE
    SYNTAX      BbDomainId
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "The Fibre Channel address domain ID of the switch."
    ::= { bbFcGeneral 5 }

bbFcInsistentDomainIdState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to enable/disable insistent domain Id.

        enabled: performs hard enforcement such that if the switch fails to
                 obtain the user configured Domain ID, the switch is isolated.

        disabled: performs soft enforcement such that if the switch fails to
                 obtain the user configured Domain ID, a trap is sent 
                 and the system uses the system-obtained Domain ID.
        "
    ::= { bbFcGeneral 6 }

bbFcInteropMode OBJECT-TYPE
    SYNTAX INTEGER {
        openFabric(1),
        mcDataFabric(2)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The interop mode of the switch.
        A SET on this object requires all VF's to be disabled."

    ::= { bbFcGeneral 7 }

bbFcDeviceProbingState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object enables and disables Fibre Channel device probing.
        A SET on this object requires all VF's to be disabled."

    ::= { bbFcGeneral 8 }

bbFcFLogiSequencingState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      obsolete
    DESCRIPTION
        "This object is used to enable/disable sequencing fabric login (FLOGI) 
        on all front ports.
        A SET on this object requires all VF's to be disabled."
    ::= { bbFcGeneral 9 }

bbFcRemoteFabricState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object enables/disables remote fabric.
        A SET on this object requires all VF's to be disabled."
    ::= { bbFcGeneral 10 }

bbFcFxPortBbCredit OBJECT-TYPE
    SYNTAX      FcBbCredit (1..75)
    UNITS       "buffers"
    MAX-ACCESS  read-write
    STATUS      obsolete
    DESCRIPTION
        "The total number of receive buffers available for holding
        Class 1 connect-request, Class 2 or 3 frames from the
        attached NxPort.  It is for buffer-to-buffer flow control
        in the direction from the attached NxPort (if applicable)
        to FxPort.

        A SET on this object requires all VF's to be disabled.
        This object is obsolete and won't be supported."
    ::= { bbFcGeneral 11 }

bbFcFxPortRxBufSize OBJECT-TYPE
    SYNTAX      FcRxDataFieldSize (256..2112)
    UNITS       "bytes"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The largest Data_Field Size (in octets) for an FT_1 frame
        that can be received by any FxPort.

        A SET on this object requires all VF's to be disabled."
    DEFVAL      { 2112 }
    ::= { bbFcGeneral 12 }

bbFcFxPortRatov OBJECT-TYPE
    SYNTAX      MilliSeconds (4000..10000)
    UNITS       "milliseconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The Resource_Allocation_Timeout Value configured for all the
         FxPorts.  It represents E_D_TOV plus twice the maximum time 
         that a frame may be delayed within the Fabric and still 
         be delivered. 

        A SET on this object requires all VF's to be disabled."
    DEFVAL      { 10000 }
    ::= { bbFcGeneral 13 }

bbFcFxPortEdtov OBJECT-TYPE
    SYNTAX      MilliSeconds (1000..5000)
    UNITS       "milliseconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The E_D_TOV value configured for all the FxPorts. The
        Error_Detect_Timeout Value is used as the timeout value for
        detecting an error condition. 

        A SET on this object requires all VF's to be disabled."
    DEFVAL      { 2000 }
    ::= { bbFcGeneral 14 }

bbFcFxPortPhysRttov OBJECT-TYPE
    SYNTAX      MilliSeconds
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current 
    DESCRIPTION
        "The Receiver_Transmitter_Timeout value of any FxPort. This
        is used by the receiver logic to detect Loss of Synchronization."
    ::= { bbFcGeneral 15 }

bbFcFxPortFcphVersionHigh OBJECT-TYPE
    SYNTAX      FcphVersion
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The highest or most recent version of FC-PH that the FxPort
        is configured to support."
    ::= { bbFcGeneral 16 }

bbFcFxPortFcphVersionLow OBJECT-TYPE
    SYNTAX      FcphVersion
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The lowest or earliest version of FC-PH that the FxPort is
        configured to support."
    ::= { bbFcGeneral 17 }

bbFcRerouteDelayState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The state in whether to delay in taking a new route during 
        a topology change."
    ::= { bbFcGeneral 18 }

bbFcDomainRscnState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object allows setting of domain RSCN to enabled or disabled."
    ::= { bbFcGeneral 19 }

bbFcZoneChangeRscnControlState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object allows the setting of the zone change control state.

        A SET on this object requires all VF's to be disabled."
    ::= { bbFcGeneral 20 }

bbFcLimitFabricRscnState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The state to indicate whether to limit fabric RSCN.
        This object is NOT SUPPORTED currently.

        A SET on this object requires all VF's to be disabled."
    ::= { bbFcGeneral 21 }

bbFcDlsEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates whether dynamic load sharing is on or not."
    ::= { bbFcGeneral 22 }

bbFcMinThickPortBbCredit    OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum BbCredit for the thick port."
    ::= { bbFcGeneral 23 }

bbFcMaxThickPortBbCredit    OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum BbCredit for the thick port."
    ::= { bbFcGeneral 24 }


bbFcMinThinPortBbCredit    OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum BbCredit for the thin port."
    ::= { bbFcGeneral 25 }

bbFcMaxThinPortBbCredit    OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum BbCredit for the thin port."
    ::= { bbFcGeneral 26 }

bbFcZoningFlexParsState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "This object allows you to configure Zoning Flex Pars feature."
    ::= { bbFcGeneral 28 }

bbCoreSwitchName OBJECT-TYPE
    SYNTAX      BbFcWWN
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Core Switch Name (WWN) of this dynamic partition. "
    ::= { bbFcGeneral 29 }

bbMaxVf OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum number of Virtual Fabric/ Virtual Switch supported on
         this partition"
    ::= { bbFcGeneral 30 }

bbVfMaxDomain OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum number of Domains supported on this Virtual Fabric."
    ::= { bbFcGeneral 31 }

bbVfNumber OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of entries in the VF table."
    ::= { bbFcGeneral 32 }

bbFcMinPortBbCredit    OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum BbCredit for a port.  The port can be 1/2/4/10G"
    ::= { bbFcGeneral 33 }

bbFcMaxPortBbCredit    OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum BbCredit for a port. The port can be 1/2/4/10G" 
    ::= { bbFcGeneral 34 }


        -- ****************************************
        -- VF specific FC parameters
        -- ****************************************
bbVfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains an entry for each fc instance (VF)
         or virtual switch."
    ::= { bbVf 5 }

bbVfEntry OBJECT-TYPE
    SYNTAX     BbVfEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A list of attributes for a particular virtual switch."
    INDEX { bbVfID }
    ::= { bbVfTable 1 }

BbVfEntry ::=
    SEQUENCE {
        bbVfID BbVfID,
        bbVfWWN BbFcWWN,
        bbVfDescription DisplayString,
        bbVfSwitchPriority INTEGER,
        bbVfPreferredDomainID BbDomainId,
        bbVfActiveDomainID BbDomainId,
        bbVfAddressDomainID BbDomainId,
        bbVfInsistentDomainIdState BbEnabledStatus,
        bbVfInteropMode INTEGER,
        bbVfDeviceProbingState BbEnabledStatus,
        bbVfDomainRscnState BbEnabledStatus,
        bbVfZoneChangeRscnControlState BbEnabledStatus,
        bbVfDomainIdMode  INTEGER,
        bbVfZoningFlexParsState BbEnabledStatus,
        bbVfFabricWWN  BbFcWWN,
        bbVfRowStatus RowStatus,
        bbVfOperStatus INTEGER
    }

bbVfID OBJECT-TYPE
    SYNTAX      BbVfID
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION 
        "The user defined VF  ID of on this switch.
         VF ID 1 is default VF and VF ID 4094 is isolated VF.  These
         two VF's are reserved and cannot be created or destroyed."
    ::= { bbVfEntry 1 }

bbVfWWN OBJECT-TYPE
    SYNTAX      BbFcWWN
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The WWN for this virtual switch."
        ::= { bbVfEntry 2 }

bbVfDescription   OBJECT-TYPE
    SYNTAX    DisplayString(SIZE(0..64))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The user defineable name for this virtual switch."
    ::= { bbVfEntry 3 }


bbVfSwitchPriority OBJECT-TYPE
    SYNTAX INTEGER {
        alwaysPrincipal(1),
        neverPrincipal(2),
        dontcare(3)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The role of this virtual switch. The role can be always a principal 
        switch, never a principal switch, or don't care.

        A SET on this object requires the virtual switch, namely
        bbVfRowStatus, to be in a disabled state."
    DEFVAL      { dontcare  }
    ::= { bbVfEntry 4 }

bbVfPreferredDomainID OBJECT-TYPE
    SYNTAX      BbDomainId
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION 
        "The preferred Fibre Channel domain ID of this virtual switch.

         A SET on this object requires the virtual switch, namely 
         bbVfRowStatus, to be in a disabled state.  The range for this
         object is 1..239 if bbVfDomainIdMode set to fullDomainRange0xe0 &
         for the rest of the bbVfDomainIdMode value itis 1..31"
    DEFVAL      { 1  }
    ::= { bbVfEntry 5 }

bbVfActiveDomainID OBJECT-TYPE
    SYNTAX      BbDomainId
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "The active Fibre Channel domain ID of this virtual switch."
    ::= { bbVfEntry 6 }

bbVfAddressDomainID OBJECT-TYPE
    SYNTAX      BbDomainId
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "The Fibre Channel address domain ID of this virtual switch."
    ::= { bbVfEntry 7 }

bbVfInsistentDomainIdState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to enable/disable insistent domain Id.
        enabled: performs hard enforcement such that if this virtual switch 
        fails to obtain the user configured Domain ID, the virtual switch is isolated.
        disabled: performs soft enforcement such that if this virtual switch fails to
                 obtain the user configured Domain ID, a trap is sent 
                 and the system uses the system-obtained Domain ID.
        "
    DEFVAL      { disabled  }
    ::= { bbVfEntry 8 }

bbVfInteropMode OBJECT-TYPE
    SYNTAX INTEGER {
        openFabric(1),
        mcDataFabric(2)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The interop mode of the switch.

         A SET on this object requires the virtual switch, namely
         bbVfRowStatus, to be in a disabled state."
    DEFVAL      { openFabric  }
    ::= { bbVfEntry 9 }

bbVfDeviceProbingState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object enables and disables Fibre Channel device probing.

         A SET on this object requires the virtual switch, namely
         bbVfRowStatus, to be in a disabled state."
    DEFVAL      { enabled  }
    ::= { bbVfEntry 10 }


bbVfDomainRscnState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object allows setting of domain RSCN to enabled or disabled."
    DEFVAL      { disabled  }
    ::= { bbVfEntry 11 }

bbVfZoneChangeRscnControlState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object allows the setting of the zone change control state.

        A SET on this object requires the virtual switch, namely
        bbVfRowStatus, to be in a disabled state."
    DEFVAL      { enabled  }
    ::= { bbVfEntry 12 }

bbVfDomainIdMode        OBJECT-TYPE
    SYNTAX INTEGER { 
       offset0x00(0),
       offset0x20(32),
       offset0x40(64),
       offset0x60(96),
       offset0x80(128),
       offset0xa0(160),
       offset0xc0(192),
       fullDomainRange0xe0(224)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the domain ID mode so that we can support
         domain ID beyond the offset 0x60 used in prior release and domain
         expansion for 239 domains.  Setting it to fullDomainRange(224) will
        cover domain ID from 1..239.  In order to to configure this object, 
        the the virtual switch, namely bbVfRowStatus,  should be disabled. ."
    DEFVAL      { offset0x60 }
    ::= { bbVfEntry 13 }


bbVfZoningFlexParsState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object allows you to configure Zoning Flex Pars feature.."
    DEFVAL      { enabled  }
    ::= { bbVfEntry 14 }

bbVfFabricWWN OBJECT-TYPE
    SYNTAX      BbFcWWN
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The WWN of the fabric this virtual switch belongs."
        ::= { bbVfEntry 15 }

bbVfRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to create, delete, enable and disable the VF 
        instance. Configuration of some Fibre Channel objects requires 
        the VF instance to be notInService first."
    ::= { bbVfEntry 16 }

bbVfOperStatus OBJECT-TYPE
    SYNTAX INTEGER {
        online(1),
        offline(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current state of Virtual Fabric."
    ::= { bbVfEntry 17 }

        -- ****************************************
        -- FC front port config and stats
        -- ****************************************

bbFcPortCommand OBJECT-TYPE
    SYNTAX INTEGER { none(1), 
        enableRscnFilterTargetAll(2), 
        disableRscnFilterTargetAll(3),
        enableRscnFilterIInitiatorAll(4), 
        disableRscnFilterIInitiatorAll(5),
        enableRscnFilterTInitiatorAll(6), 
        disableRscnFilterTInitiatorAll(7)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to issue a FC Port command to the FC 
        system.  Setting it to 'none' has no effect, and when it 
        is retrieved the value will always be 'none'."
    ::= { bbFcPort 1 }

bbFcPortTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BbFcPortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table of Fibre Channel port information.  A GET returns all ports on 
        the switch, regardless of whether the physical port exist or not."
    ::= { bbFcPort 2 }

bbFcPortEntry OBJECT-TYPE
    SYNTAX     BbFcPortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A set of Fibre Channel port entries."
    INDEX { bbFcPortIndex }
    ::= { bbFcPortTable 1 }

BbFcPortEntry ::=
    SEQUENCE {
        bbFcPortIndex                       BbPortIndex,
        bbFcPortAdminState                  INTEGER,
        bbFcPortOperState                   INTEGER,
        bbFcPortAdminType                   INTEGER,
        bbFcPortOperType                    INTEGER,
        bbFcPortThickSpeed                  INTEGER,
        bbFcPortThickBbCredit               FcBbCredit,
        bbFcPortThinSpeed                   INTEGER,
        bbFcPortThinBbCredit                FcBbCredit,
        bbFcPortActualBbCredit              FcBbCredit,
        bbFcPortRscnFilterTargetState       BbEnabledStatus, 
        bbFcPortRscnFilterIInitiatorState   BbEnabledStatus, 
        bbFcPortRscnFilterTInitiatorState   BbEnabledStatus,
        bbFcPortStateReason                 INTEGER,
        bbFcPortStreamDirection             INTEGER,
        bbFcPortRemoteVendorName            DisplayString,

        -- link incident information
        bbFcPortLinkTrapEnable              TruthValue,
        bbFcPortLinkEvent                   INTEGER,
        bbFcPortLinkEventTime               DisplayString,
        bbFcPortName                        DisplayString,
        bbFcPortWWN                         BbFcWWN,
        bbFcPortIsQsaRev2Registered         TruthValue,
 
        -- Newer implementation of bbCredit
        bbFcPortThinMaxBbCredit             FcBbCredit,
        bbFcPortThinMinBbCredit             FcBbCredit,
        bbFcPortThickMaxBbCredit            FcBbCredit,
        bbFcPortThickMinBbCredit            FcBbCredit
    }

bbFcPortIndex OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The unique port index of this table. It equals the port number + 1."
        ::= { bbFcPortEntry 1 }

bbFcPortAdminState OBJECT-TYPE
    SYNTAX INTEGER {
        unblocked(1),
        blocked(2)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The administrative state of this Fibre Channel port." 
    DEFVAL      { blocked  }
        ::= { bbFcPortEntry 2 }

bbFcPortOperState OBJECT-TYPE
    SYNTAX INTEGER {
        unknown(1),
        notPresent(2),
        noGbic(3),
        online(4),
        offline(5),
        segmented(6),
        invAttachment(7),
        unaddressable(8),    -- only apply to 10G paddles
        inactive(9),
        noLight(10),
        disabled(11)  -- due to port fencing
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The operational state of this Fibre Channel port." 
        ::= { bbFcPortEntry 3 }

bbFcPortAdminType OBJECT-TYPE
    SYNTAX INTEGER {
        gPort(1),
        ePort(2),
        fPort(3)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The desire port type for this Fibre Channel port.
        To configure this object, the bbFcPortAdminState object has 
        to be offline(2) VF disabled(2)." 
    DEFVAL      { gPort  }
        ::= { bbFcPortEntry 4 }

bbFcPortOperType OBJECT-TYPE
    SYNTAX INTEGER {
        unknown(1),
        ePort(2),
        fPort(3)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The operating port type for this Fibre Channel port." 
        ::= { bbFcPortEntry 5 }

bbFcPortThickSpeed OBJECT-TYPE
    SYNTAX INTEGER {
        notApplicable(1),
        speed10Gbps(2)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The configured speed for the thick port. For ports 3-8 in
        this paddle, the thick port configuration is not applicable
        and only the notApplicable(1) value should be used.
        To configure this object, the bbFcPortAdminState object has 
        to be offline(2) or VF disabled(2)." 
    DEFVAL      { speed10Gbps   }
        ::= { bbFcPortEntry 6 }

bbFcPortThickBbCredit OBJECT-TYPE
    SYNTAX      FcBbCredit
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The configured BB_Credit for the thick port. For a GET, a 
        zero (0) value means this port is not applicable for a thick port.
        To configure this object, the bbFcPortAdminState object has 
        to be offline(2) or VF disabled(2)."
    DEFVAL      { 96   }
        ::= { bbFcPortEntry 7 }

bbFcPortThinSpeed OBJECT-TYPE
    SYNTAX INTEGER {
        auto(1),
        speed1Gbps(2),
        speed2Gbps(3),
        speed4Gbps(4)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The configured speed for the thin port.
        To configure this object, the bbFcPortAdminState object has 
        to be offline(2) or VF disabled(2)." 
    DEFVAL      { auto   }
        ::= { bbFcPortEntry 8 }

bbFcPortThinBbCredit OBJECT-TYPE
    SYNTAX      FcBbCredit
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The configured BB_Credit for the thin port.
        To configure this object, the bbFcPortAdminState object has 
        to be offline(2) or VF disabled(2)."
    DEFVAL      { 16   }
        ::= { bbFcPortEntry 9 }

bbFcPortActualBbCredit OBJECT-TYPE
    SYNTAX      FcBbCredit
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The actual BB_Credit used for this Fibre Channel front port."
        ::= { bbFcPortEntry 10 }

bbFcPortRscnFilterTargetState OBJECT-TYPE 
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "A device that does not query SNS is considered a 
        target device. This filter controls whether or not
        target devices will receive RSCN."
    DEFVAL      { enabled }
        ::= { bbFcPortEntry 11 }

bbFcPortRscnFilterIInitiatorState OBJECT-TYPE 
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "A device that queries SNS is considered an initiator 
        device. This filter controls whether Initiator devices 
        will receive RSCN traffic caused by other initiator 
        devices."
    DEFVAL      { enabled }
        ::= { bbFcPortEntry 12 }

bbFcPortRscnFilterTInitiatorState OBJECT-TYPE 
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION 
        "This filter will prevent initiator devices from being 
        disrupted during a time critical operation even if a 
        state change is caused by a target device."
    DEFVAL      { disabled }
        ::= { bbFcPortEntry 13 }

bbFcPortStateReason OBJECT-TYPE 
    SYNTAX INTEGER { 
        none(1),

        -- reasons for block port state
        blockedByUser(2),
        blockedByFiconHost(3),

        -- reasons for offline port state
        offlineDiags(500),

        -- reasons for segmented port state
        esegNotSegmented(600),
        esegOtherReason(601),
        esegLinkParameters(602),
        esegDomainIdConflict(603),
        esegZoneMismatch(604),
        esegBuildFabricFailure(605),
        esegNoPrincipalSwitch(606),
        esegPathSelectionHelloTimeout(607),
        esegDeliveryError(608),
        esegVfFailure(609),
        esegDomainIdModeMismatch(610),

        -- reasons for invalid attachment port state
        invAttNonEportMode(700),
        invAttElpRejectUnableToProcess(701),
        invAttElpRejectInvalidRevision(702),
        invAttLoopback(703),
        invAttNonFportMode(704),
        invAttLegacyNonMcdataWwn(705),
        invAttEportCapabilityDisabled(706),
        invAttEportCapabilityInternal(707),
        invAttUnauthorizedPortBindingWwn(708),
        invAttGportElpTimeout(709),
        invAttEsaSecurityMismatch(710),
        invAttFabricBindingFailure(711),
        invAttAuthorizationFailureReject(712),
        invAttUnauthorizedSwBindingWwn(713),
        invAttAuthenticationFailure(714),
        invAttFabricModeMismatch(715),
        invAttCntKludgeModeMismatch(716),
        invAttUnknown(717),

        -- reasons for inactive port state
        inactiveReserved(900),
        inactiveInvalid10GPaddleConfig(901),

        -- reasons for disabled port state 
        disabledUnknown(1000),
        -- Security violation
        disabledPortBindingViolation(1001),
        disabledSwitchBindingViolation(1002),
        disabledFabricBindingViolation(1003),
        disabledAuthenticationViolation(1004),
        disabledNportConnectionNotAllowed(1005),
        disabledIslErrorSecurityViolation(1006),
        -- protocol violation
        disabledIslFencing(1007),
        disabledIslSegmentationViolation(1008),
        disabledIslErrorProtocolViolation(1009),
        disabledFlogiViolation(1010),
        disabledIslSegmentation(1011),
        disabledFc2UnableToDeliver(1012),
        -- link level violation
        disabledLinkTransitionThresholdExceeded(1013)


    } 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "This object indicates the reason for this state, usually
        state in segmentation or invalid attachment."
        ::= { bbFcPortEntry 14 }

bbFcPortStreamDirection OBJECT-TYPE 
    SYNTAX INTEGER { 
        notApplicable(1),       -- not E_Port
        none(2),
        upStream(3),
        downStream(4)
    } 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "This object indicates the principal upstream/downstream status 
        of an E_Port. none(2) indicates the E_Port is neither upstream 
        nor downstream. Other port types always returns notApplicable(1)."
        ::= { bbFcPortEntry 15 }

bbFcPortRemoteVendorName OBJECT-TYPE 
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "This the vendor name for the remote port"
        ::= { bbFcPortEntry 16 }

bbFcPortLinkTrapEnable   OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "This object indicates whether link event traps are enabled or 
        disabled for this port.  The value of this object does not 
        affect the port status change traps."
        ::= { bbFcPortEntry 20 }

bbFcPortLinkEvent     OBJECT-TYPE
    SYNTAX     INTEGER {
                    bit-error                  (1),
                    loss-of-signal             (2),
                    nos-received               (3),
                    link-failure               (4),
                    invalid-primitive-sequence (5),
                    link-established           (6),
                    no-information             (7)   
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The last link event which occurred for this port."
        ::= { bbFcPortEntry 21 }

bbFcPortLinkEventTime   OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The time at which the last link event occurred for this port. 
        If no link event has occurred this value shall be zero."
        ::= { bbFcPortEntry 22 }

bbFcPortName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..24))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A name optionally assigned by the user."
        ::= { bbFcPortEntry 23 }

bbFcPortWWN OBJECT-TYPE
    SYNTAX      BbFcWWN
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The WWN for this port."
        ::= { bbFcPortEntry 24 }

bbFcPortIsQsaRev2Registered OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object will tell if the device
         is registered to receive security attribute changes.  This includes
         Fabric Binding, Insistent Domain Id, and Enterprise Fabric Mode changes."
    ::= { bbFcPortEntry 25 }

bbFcPortThinMaxBbCredit OBJECT-TYPE
    SYNTAX      FcBbCredit
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum BB_Credit that can be configured on 1/2/4G port. 
        For LIM ports the max. value could be upto 60 and with PFE key for 
        long distance it could be upto 1133.  For LMQ with BB_Credit
        configured in mode 2, the max. value could be 200 if this port falls
        under the first 4 port of a paddle-pair otherwise it is 64."
    DEFVAL      { 60 }
        ::= { bbFcPortEntry 28 }

bbFcPortThinMinBbCredit OBJECT-TYPE
    SYNTAX      FcBbCredit
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum BB_Credit that can be configured on 1/2/4G port. 
        The min. value is 1."
    DEFVAL      { 1 }
        ::= { bbFcPortEntry 29 }

bbFcPortThickMaxBbCredit OBJECT-TYPE
    SYNTAX      FcBbCredit
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum BB_Credit that can be configured on 10G port. 
        The max. value could be upto 360 and with PFE key for 
        long distance it could be upto 1133."
    DEFVAL      { 360 }
        ::= { bbFcPortEntry 30 }

bbFcPortThickMinBbCredit OBJECT-TYPE
    SYNTAX      FcBbCredit
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum BB_Credit that can be configured on 10G port. 
        The min. value is 1."
    DEFVAL      { 1 }
        ::= { bbFcPortEntry 31 }

bbFcPortStatsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BbFcPortStatsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table of Fibre Channel port statistics information."
    ::= { bbFcPort 3 }

bbFcPortStatsEntry OBJECT-TYPE
    SYNTAX     BbFcPortStatsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A set of Fibre Channel port statistics entries."
    INDEX { bbFcPortStatsIndex }
    ::= { bbFcPortStatsTable 1 }

BbFcPortStatsEntry ::=
    SEQUENCE {
        bbFcPortStatsIndex          BbPortIndex,

        -- class 2 statistics
        bbFcPortStatsTxC2Octets     Counter64,
        bbFcPortStatsRxC2Octets     Counter64,

        -- class 3 statistics
        bbFcPortStatsTxC3Octets     Counter64,
        bbFcPortStatsRxC3Octets     Counter64,

        -- Open Trunking log
        bbFcPortStatsFlowsReroutedFromIsl   Counter64,
        bbFcPortStatsFlowsReroutedToIsl     Counter64
    }

bbFcPortStatsIndex OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The unique port index."
    ::= { bbFcPortStatsEntry 1 }

bbFcPortStatsTxC2Octets OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The number of class 2 octets that the port has transmitted."
    ::= { bbFcPortStatsEntry 2 }

bbFcPortStatsRxC2Octets OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The number of class 2 octets that the port has received."
    ::= { bbFcPortStatsEntry 3 }

bbFcPortStatsTxC3Octets OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The number of class 3 octets that the port has transmitted."
    ::= { bbFcPortStatsEntry 4 }

bbFcPortStatsRxC3Octets OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The number of class 3 octets that the port has received."
    ::= { bbFcPortStatsEntry 5 }

bbFcPortStatsFlowsReroutedFromIsl OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The number of octets/flows rerouted from ISL."
    ::= { bbFcPortStatsEntry 6 }

bbFcPortStatsFlowsReroutedToIsl OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The number of octets/flows rerouted to ISL."
    ::= { bbFcPortStatsEntry 7 }

------------------------------------------------------------------------
--
-- Fibre Channel Port Log Configuration
--
------------------------------------------------------------------------
bbFcPortLogConfig    OBJECT IDENTIFIER ::= { bbFcPort 4 }

bbPortLogMode OBJECT-TYPE
    SYNTAX INTEGER {
        noLogging(1),
        portLogging(2),
        triggerLogging(3)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The mode of port log. The values are:

        value           Description
        ------          --------------------------------------------------
        noLogging       no frames are logged
        portLogging     frames are logged based on port criterion
        triggerLogging  frames are logged based on trigger criterion
        "
    ::= { bbFcPortLogConfig 1 }

bbPortLogSelectedPort OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This is a bitmap of port whose frames needs to be logged.
        The bytes are read from left to right.  Within a byte the bits are
        read from right to the left.  Port 0 is in the first byte on the
        leftmost part of the string & the bit is in the righmost position within
        that byte."
    ::= { bbFcPortLogConfig 2 }

bbPortLogClassFFrameState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The class F filtering."
    ::= { bbFcPortLogConfig 3 }

bbPortLogTriggerState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates whether frames capture trigger is enabled 
        or not.  The start/stop trigger values will be applicable if it
        is enabled."
    ::= { bbFcPortLogConfig 4 }

bbPortLogStartTriggerOffset OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indcates the start trigger offset for starting to write 
         entries to the log. The offset indicates the offset into the 
         fibre channel frame to begin looking for data pattern."
    ::= { bbFcPortLogConfig 5 }

bbPortLogStartTriggerDataPattern OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..48))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates the data pattern to log for to start logging."
    ::= { bbFcPortLogConfig 6 }

bbPortLogStopTriggerOffset OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indcates the stop trigger offset to stop writing
         entries to the log. The offset indicates the offset into the
         fibre channel frame to begin looking for data pattern."
    ::= { bbFcPortLogConfig 7 }

bbPortLogStopTriggerDataPattern OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..48))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates the data pattern to log for to stop logging."
    ::= { bbFcPortLogConfig 8 }



bbPortLogVfState OBJECT-TYPE
    SYNTAX INTEGER {
        all(1),
        selected(2)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The state of port log with respect to virtual fabric. The values are:

        value       Description
        ------      --------------------------------------------------
        all         all VF will be logged
        selected    only the selected VF to log frames. The selected
                    VF is indicated in the object bbPortLogSelectedVf.
        "
    ::= { bbFcPortLogConfig 9 }

bbPortLogSelectedVf OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The selected vf that will log frames."
    ::= { bbFcPortLogConfig 10 }



-- **************************************
-- Port VF configuration
-- **************************************

bbVfPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BBvfPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for port attributes for specific virtual fabrics."
    ::= { bbFcPort 5 }

bbVfPortEntry OBJECT-TYPE
    SYNTAX      BBvfPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the virtual fabric port table, containing one
         row for each physical port on the switch."
    AUGMENTS   { bbFcPortEntry }
--        REFERENCE
--         "bbFcPortEntry is defined in [EOSN-MIB]."
    ::= { bbVfPortTable 1}

BBvfPortEntry ::=
    SEQUENCE {
        bbVfPortVfId           BbVfID,
        bbVfPortTaggingStatus  INTEGER

    }

bbVfPortVfId OBJECT-TYPE
    SYNTAX      BbVfID
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The Port_VF_id assigned to this port. The Port_VF_id is the 
         default virtual fabric that is assigned to untagged frames 
         arriving at this port."
    REFERENCE
         "Port_VF_id is defined in Section 12.1 of [FC-SW-4]."
    ::= { bbVfPortEntry 1 }

bbVfPortTaggingStatus OBJECT-TYPE
    SYNTAX INTEGER {
        off(1),
        on(2),
        auto(3)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to configure the port on this virtual 
         fabric.

        SET operation   Description
        --------------  ---------------------------------------------
off(1)          To disable virtual fabric tagging on this port.

on(2)           To enable virtual fabric tagging on this port if the attached port doesn't prohibit it.

auto(3)         To enable virtual fabric tagging if the peer requests 
                it. "
    REFERENCE
         "Port Tagging Administrative Status is defined in 
          Section 12.4 of [FC-SW-4]."
    DEFVAL      { auto }
    ::= { bbVfPortEntry 2 }


        -- ****************************************
        -- FC Preferred Path Table
        -- ****************************************
bbFcPathTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFcPathEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of paths."
    ::= { bbFcPath 1 }

bbFcPathEntry OBJECT-TYPE
    SYNTAX      BbFcPathEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the path table."
    INDEX   {
        bbFcPathInPort,
        bbFcPathNpid
    }
    ::= { bbFcPathTable 1}

BbFcPathEntry ::=
    SEQUENCE {
        bbFcPathInPort      BbPortIndex,
        bbFcPathNpid        OCTET STRING,
        bbFcPathOutPort     Integer32
    }

bbFcPathInPort OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicating the in port for the path. It equals the port number + 1."
    ::= { bbFcPathEntry 1 }

bbFcPathNpid OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (3))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The NPID of this path."
    ::= { bbFcPathEntry 2 }

bbFcPathOutPort OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The out port for the path."
    ::= { bbFcPathEntry 3 }

bbFcPreferredPathState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to enable/disable the preferred path feature."
    ::= { bbFcPath 2 }

bbFcPreferredPathNumber OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This number of entries in the preferred path table."
    ::= { bbFcPath 3 }

bbFcPreferredPathTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFcPreferredPathEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table to configure preferred paths."
    ::= { bbFcPath 4 }

bbFcPreferredPathEntry OBJECT-TYPE
    SYNTAX      BbFcPreferredPathEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the preferred path configuration table."
    INDEX   { 
        bbFcPreferredPathInPort,
        bbFcPreferredPathDomainId
    }
    ::= { bbFcPreferredPathTable 1}

BbFcPreferredPathEntry ::=
    SEQUENCE {
        bbFcPreferredPathInPort      BbPortIndex,
        bbFcPreferredPathDomainId    BbDomainId,
        bbFcPreferredPathOutPort     Integer32,
        bbFcPreferredPathRowStatus   RowStatus
    }

bbFcPreferredPathInPort OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicating the in port for the preferred path. 
        It equals the port number + 1."
    ::= { bbFcPreferredPathEntry 1 }

bbFcPreferredPathDomainId OBJECT-TYPE
    SYNTAX      BbDomainId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The destination domain ID of this preferred path."
    ::= { bbFcPreferredPathEntry 2 }

bbFcPreferredPathOutPort OBJECT-TYPE
    SYNTAX      Integer32(0..2047)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The out port for the preferred path."
    ::= { bbFcPreferredPathEntry 3 }

bbFcPreferredPathRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to create a new row or modify/delete 
        an existing row in this table."
    ::= { bbFcPreferredPathEntry 4 }


        -- ****************************************
        -- FC VF Preferred Path Table
        -- ****************************************
bbVfPreferredPathGlobalTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfPreferredPathGlobalEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information to preferred path on a Virtual Switch."
    ::= { bbFcPath 5 }

bbVfPreferredPathGlobalEntry OBJECT-TYPE
    SYNTAX      BbVfPreferredPathGlobalEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of attributes for a particular Virtual Switch."
    AUGMENTS   { bbVfEntry }
    ::= { bbVfPreferredPathGlobalTable 1}

BbVfPreferredPathGlobalEntry ::=
    SEQUENCE {
        bbVfPreferredPathState       BbEnabledStatus,
        bbVfPreferredPathNumber      Integer32
    }


bbVfPreferredPathState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to enable/disable the preferred path feature."
    DEFVAL      { disabled }
    ::= { bbVfPreferredPathGlobalEntry 1 }

bbVfPreferredPathNumber OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of entries in the preferred path table for each VF."
    ::= { bbVfPreferredPathGlobalEntry 2 }

bbVfPreferredPathTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfPreferredPathEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table to configure preferred paths on a Virtual Switch."
    ::= { bbFcPath 6 }

bbVfPreferredPathEntry OBJECT-TYPE
    SYNTAX      BbVfPreferredPathEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of attributes."
    INDEX   { 
        bbVfID, bbVfPreferredPathInPort, 
        bbVfPreferredPathDomainId
    }
    ::= { bbVfPreferredPathTable 1}

BbVfPreferredPathEntry ::=
    SEQUENCE {
        bbVfPreferredPathInPort      BbPortIndex,
        bbVfPreferredPathDomainId    BbDomainId,
        bbVfPreferredPathOutPort     Integer32,
        bbVfPreferredPathRowStatus   RowStatus
    }

bbVfPreferredPathInPort OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicating the in port for the preferred path. 
        It equals the port number + 1."
    ::= { bbVfPreferredPathEntry 1 }

bbVfPreferredPathDomainId OBJECT-TYPE
    SYNTAX      BbDomainId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The destination domain ID of this preferred path."
    ::= { bbVfPreferredPathEntry 2 }

bbVfPreferredPathOutPort OBJECT-TYPE
    SYNTAX      Integer32(0..255)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The out port for the preferred path."
    ::= { bbVfPreferredPathEntry 3 }

bbVfPreferredPathRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to create a new row or modify/delete 
        an existing row in this table."
    ::= { bbVfPreferredPathEntry 4 }


        -- ****************************************
        -- FC VF Path Table
        -- ****************************************
bbVfPathTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfPathEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of paths per vf."
    ::= { bbFcPath 7 }

bbVfPathEntry OBJECT-TYPE
    SYNTAX      BbVfPathEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the path table."
    INDEX   {
        bbVfID, bbVfPathInPort,
        bbVfPathNpid
    }
    ::= { bbVfPathTable 1}

BbVfPathEntry ::=
    SEQUENCE {
        bbVfPathInPort      BbPortIndex,
        bbVfPathNpid        OCTET STRING,
        bbVfPathOutPort     Integer32
    }

bbVfPathInPort OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicating the in port for the path. It equals the port number + 1."
    ::= { bbVfPathEntry 1 }

bbVfPathNpid OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (3))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The NPID of this path."
    ::= { bbVfPathEntry 2 }

bbVfPathOutPort OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The out port for the path."
    ::= { bbVfPathEntry 3 }

        -- ****************************************
        -- FC Sns Change Table
        -- ****************************************

bbFcSnsChangeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFcSnsChangeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains an entry for each domain whose simple name 
         server entry has last changed.  Actual name server entry are in 
         connUnitSnsTable."
    ::= { bbFcSns 1 }

bbFcSnsChangeEntry OBJECT-TYPE
    SYNTAX     BbFcSnsChangeEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A entry of the sns change table."
    INDEX { bbFcSnsLogicalDomainId }
    ::= { bbFcSnsChangeTable 1 }

BbFcSnsChangeEntry ::=
    SEQUENCE {
        bbFcSnsLogicalDomainId BbDomainId,
        bbFcSnsLastChange      TimeTicks,
        bbFcSnsCount           Counter32,
        bbFcSnsNPortDomainId   Integer32
    }

bbFcSnsLogicalDomainId  OBJECT-TYPE
    SYNTAX      BbDomainId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The logical Domain ID."
    ::= { bbFcSnsChangeEntry 1 }


bbFcSnsLastChange OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time the last SNS change was seen for this Domain."
    ::= { bbFcSnsChangeEntry 2 }

bbFcSnsCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of sns entry changes seen for this Domain ."
    ::= { bbFcSnsChangeEntry 3 }

bbFcSnsNPortDomainId  OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The actual N_port Domain ID as seen in the FC address.
         It contains the most recent Domain Byte value (ie. 
         0th byte of an N_Port's NPID) assigned to an N_Port 
         belonging to this domain"
    ::= { bbFcSnsChangeEntry 4 }

bbFcVfSnsChangeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFcVfSnsChangeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains an entry for each domain whose simple name 
         server entry has last changed.  Actual name server entry are in 
         connUnitSnsTable."
    ::= { bbFcSns 2 }

bbFcVfSnsChangeEntry OBJECT-TYPE
    SYNTAX     BbFcVfSnsChangeEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A entry of the sns change table."
    INDEX { bbFcVfSnsVfId, bbFcVfSnsLogicalDomainId }
    ::= { bbFcVfSnsChangeTable 1 }

BbFcVfSnsChangeEntry ::=
    SEQUENCE {
        bbFcVfSnsVfId            BbVfID,
        bbFcVfSnsLogicalDomainId BbDomainId,
        bbFcVfSnsLastChange      TimeTicks,
        bbFcVfSnsCount           Counter32,
        bbFcVfSnsNPortDomainId   Integer32
    }

bbFcVfSnsVfId OBJECT-TYPE
    SYNTAX              BbVfID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The Vf ID index used to query the VfSnsChange table."
        ::= { bbFcVfSnsChangeEntry 1 }

bbFcVfSnsLogicalDomainId  OBJECT-TYPE
    SYNTAX      BbDomainId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The logical Domain ID."
    ::= { bbFcVfSnsChangeEntry 2 }


bbFcVfSnsLastChange OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time the last SNS change was seen for this Domain."
    ::= { bbFcVfSnsChangeEntry 3 }

bbFcVfSnsCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of sns entry changes seen for this Domain ."
    ::= { bbFcVfSnsChangeEntry 4 }

bbFcVfSnsNPortDomainId  OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The actual N_port Domain ID as seen in the FC address.
         It contains the most recent Domain Byte value (ie. 
         0th byte of an N_Port's NPID) assigned to an N_Port 
         belonging to this domain"
    ::= { bbFcVfSnsChangeEntry 5 }

        -- ****************************************
        -- FC Open Trunking
        -- ****************************************

bbVfOTTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfOTEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for Open trunking attributes for specific virtual fabrics."
    ::= {  bbFcOT 1 }

bbVfOTEntry OBJECT-TYPE
    SYNTAX      BbVfOTEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the virtual fabric open trunking table, containing one
         row for each virtual switch."
    AUGMENTS   { bbVfEntry }
--        REFERENCE
--         "bbVfEntry is defined in [EOSN-MIB]."
    ::= { bbVfOTTable 1}

BbVfOTEntry ::=
    SEQUENCE {
        bbVfOTState  BbEnabledStatus,
        bbVfOTUnresolvedCongestionTrapEnable   TruthValue,
        bbVfOTBackPressureTrapEnable   TruthValue,
        bbVfOTCreditStarvationThresholdUseDefaultFlag   TruthValue,
        bbVfOTCreditStarvationThreshold Integer32,
        bbVfOTDefaultCreditStarvationThreshold Integer32
    }

bbVfOTState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to enable and disable Open Trunking feature."
    DEFVAL { disabled }
    ::= { bbVfOTEntry 1 }


bbVfOTUnresolvedCongestionTrapEnable   OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION    
        "This object indicates whether Unresolved Congestion trap and event
         are enabled (true) or disabled (false)."
    DEFVAL { false }
        ::= { bbVfOTEntry 2 }

bbVfOTBackPressureTrapEnable   OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION    
        "This object indicates whether Back Pressure trap and event
         are enabled (true) or disabled (false)."
    DEFVAL { false }
        ::= { bbVfOTEntry 3 }

bbVfOTCreditStarvationThresholdUseDefaultFlag   OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION    
        "This object indicates whether to use default algorithm
         for credit starvation threshold.  If true then default credit
         starvation threshold value in  bbVfOTDefaultCreditStarvationThreshold
         is used.  Otherwise the user configured value in 
         bbVfOTCreditStarvationThreshold is used."
    DEFVAL { true }
        ::= { bbVfOTEntry 4 }


bbVfOTCreditStarvationThreshold OBJECT-TYPE
    SYNTAX      Integer32(1..99)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The Credit Starvation Threshold measured in percentage."
    DEFVAL { 50 }
    ::= { bbVfOTEntry 5 }

bbVfOTDefaultCreditStarvationThreshold OBJECT-TYPE
    SYNTAX      Integer32(1..99)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The default credit starvation Threshold measured in percentage.
         The values are 75 for 2G/4G/10G and 66 for 1G."
    DEFVAL { 75 }
    ::= { bbVfOTEntry 6 }

bbFcOTCongestionThresholdTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFcOTCongestionThresholdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for Open Trunking Congestion Threshold settings for port."
    ::= { bbFcOT 7 }

bbFcOTCongestionThresholdEntry OBJECT-TYPE
    SYNTAX      BbFcOTCongestionThresholdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the Open Trunking congestion Threshold table."
    INDEX { bbFcOTPortIndex }
    ::= { bbFcOTCongestionThresholdTable 1}

BbFcOTCongestionThresholdEntry ::=
    SEQUENCE {
        bbFcOTPortIndex                         BbPortIndex, 
        bbFcOTOffloadThresholdUseDefaultFlag    TruthValue,
        bbFcOTPortOffloadThreshold              Integer32,
        bbFcOTDefaultPortOffloadThreshold       Integer32
    }
bbFcOTPortIndex OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The unique port index of this table. It equals the port number + 1."
        ::= { bbFcOTCongestionThresholdEntry 1 }

bbFcOTOffloadThresholdUseDefaultFlag OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The object indicates whether to use defult 
        or user defined offload threshold."
    ::= { bbFcOTCongestionThresholdEntry 2 }

bbFcOTPortOffloadThreshold OBJECT-TYPE
    SYNTAX      Integer32(1..99)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The object indicates the offload threshold to use if 
         bbFcOTOffloadThresholdUseDefaultFlag is set to false."
    ::= { bbFcOTCongestionThresholdEntry 3 }

bbFcOTDefaultPortOffloadThreshold OBJECT-TYPE
    SYNTAX      Integer32(1..99)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The object indicates the default offload threshold to use.  
         This value is used when bbFcOTOffloadThresholdUseDefaultFlag set to
         true.  The default threshold values as defined in firmware are 
         dependent on link bandwidth (e.g. 1Gb = 70%, 2Gb = 80%, 10Gb = 51% "
    ::= { bbFcOTCongestionThresholdEntry 4 }

bbFcPaddlePairTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFcPaddlePairEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about potential paddle-pair's oversubscription
        characteristics. LMQ are the only Line Module which can be
        oversubscribed currently."
    ::= { bbFcPaddlePair 1 }

bbFcPaddlePairEntry OBJECT-TYPE
    SYNTAX      BbFcPaddlePairEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of attributes for a particular paddle-pair instance."
    INDEX   { bbFcPaddlePairSlotIndex, bbFcPaddlePairPaddlePairIndex }
    ::= { bbFcPaddlePairTable 1 }

BbFcPaddlePairEntry ::=
    SEQUENCE {
        bbFcPaddlePairSlotIndex         BbSlotNumber,
        bbFcPaddlePairPaddlePairIndex   BbPaddlePairID,
        bbFcPaddlePairSubscriptionMode  INTEGER,
        bbFcPaddlePairBbCreditMode      INTEGER,
        bbFcPaddlePairZoning            INTEGER,
        bbFcPaddlePairOperStatus        INTEGER
    } 
 
bbFcPaddlePairSlotIndex OBJECT-TYPE
    SYNTAX      BbSlotNumber
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The Line Module's slot number.  Currently it is only applicable for
        LMQ. This number equals the slot number + 1."
    ::= { bbFcPaddlePairEntry 1 }

bbFcPaddlePairPaddlePairIndex OBJECT-TYPE
    SYNTAX      BbPaddlePairID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The paddle pair number."
    ::= { bbFcPaddlePairEntry 2 }

bbFcPaddlePairSubscriptionMode OBJECT-TYPE
    SYNTAX INTEGER {
        overSubscription(1),
        noOverSubscription(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Subscription Mode.  This object represents potential
        oversubscription state."
    ::= { bbFcPaddlePairEntry 3 }

bbFcPaddlePairBbCreditMode OBJECT-TYPE
    SYNTAX INTEGER {
        mode1(1),
        mode2(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The bbCredit  Mode."
    DEFVAL { mode2 }
    ::= { bbFcPaddlePairEntry 4 }

bbFcPaddlePairZoning OBJECT-TYPE
    SYNTAX INTEGER {
        hardzoing(1),
        softzoning2(2)
    }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The zoning Mode."
    DEFVAL { hardzoning }
    ::= { bbFcPaddlePairEntry 5 }

bbFcPaddlePairOperStatus OBJECT-TYPE
    SYNTAX INTEGER {
        online(1),
        offline(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The operational status of the paddle-pair."
    DEFVAL { online }
    ::= { bbFcPaddlePairEntry 6 }


------------------------------------------------------------------------
--
-- FICON
--
------------------------------------------------------------------------

bbFiconSystem OBJECT IDENTIFIER ::= { bbFicon 1 }
bbFiconPort OBJECT IDENTIFIER ::= { bbFicon 2 }

        -- ****************************************
        -- FICON system setting
        -- ****************************************

bbFiconSystemActiveEqualSavedState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to enable and disable the FICON 
        active equal saved feature. Affected attributes
        include port state, port name, CUP name, and PDCM."
    ::= { bbFiconSystem 1 }

bbFiconSystemUserAlertMode OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to enable and disable user alert mode."
    ::= { bbFiconSystem 2 }

bbFiconSystemDirectorClockAlertMode OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to enable and disable the director clock alert
        mode. If enabled, a message will be generated when the user changes 
        the director clock."
    ::= { bbFiconSystem 3 }

bbFiconSystemHostControlProhibitedState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to enable and disable host control feature.
        If enabled, host will not be able to control the director."
    ::= { bbFiconSystem 4 }

bbFiconSystemCupName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..24))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The name of the CUP on the director."
    ::= { bbFiconSystem 5 }

bbFiconSystemRemoteOfflineControlState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to enable/disable the remote offline control.
        If disabled, host will not be able to set the director offline."
    ::= { bbFiconSystem 6 }

bbFiconSystemCodePageID OBJECT-TYPE
    SYNTAX INTEGER {
       unitedStatesCanada(37),
       germanyAustria(273),
       brazil(275),
       italy(280),
       japan(281),
       spainLatinAmerica(284),
       unitedKingdom(285),
       france(297),
       international5(500)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This is the country code ID."
    ::= { bbFiconSystem 7 }

bbFiconSystemManagementServerState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicates the state of FICON management server."
    ::= { bbFiconSystem 8 }

bbFiconSystemFiconDevicesSupported OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "To enable and disable the support for FICON devices. This affects
        addresses FE and FF. This can only be set in the admin partition.
        Traffic directed to port addresses FE and FF (which could be the
        same as physical ports FE and FF, if they were not port swapped)
        is directed to CUP internal to the CTP. Ports FE and FF are then
        forced offline and cannot be used to connect external devices"
    ::= { bbFiconSystem 9 }

bbFiconSystemAlternateControlProhibitState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to enable and disable the FICON 
        Alternate Control Prohibited flag."
    ::= { bbFiconSystem 10 }

bbFiconSystemMihpTimeout OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Missing Interrupt Handler Primary Timeout (MIHPTO) is the longest 
         time that a channel program should be expected to last taking 
         into account recovery time and any queueing time as a result 
         of presentation of busy or channel retry status.  To configure
         this object, the default VF needs to be disabled.  
         The interpretation of the byte is as follows:
         Bits 7-6 are exponents
            00 indicates 1 second increments
            01 indicates 10 second increments
            10 indicates 100 second increments
            11 indicates 1000 second increments
         Bits 5-0 are value in range of 0 - 63 with ranges according to exponent:
            00 indicates values 15 - 63
            01 indicates values 15 - 630 by 10 second increments
            10 indicates values 15 - 6300 by 100 second increments
            11 indicates values 15 - 63000 by 1000 second increments 
         The default value is 0x52.
         They byte value range is 15..127 which covers a decimal value of 15..63000"
    ::= { bbFiconSystem 11 }

bbFiconPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFiconPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of FICON ports"
    ::= { bbFiconPort 1 }

bbFiconPortEntry OBJECT-TYPE
    SYNTAX      BbFiconPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the FICON port table"
    INDEX   { bbFiconPortAddress }
    ::= { bbFiconPortTable 1 }

BbFiconPortEntry ::=
    SEQUENCE {
        bbFiconPortAddress                  Integer32,
        bbFiconPortNumber                   Integer32,
        bbFiconPortPdcm                     OCTET STRING,
        bbFiconPortRnidFlags                OCTET STRING,
        bbFiconPortRnidNodeParameters       OCTET STRING,
        bbFiconPortRnidTypeNumber           DisplayString,
        bbFiconPortRnidModelNumber          DisplayString,
        bbFiconPortRnidManufacturer         DisplayString,
        bbFiconPortRnidPlantOfManufacture   DisplayString,
        bbFiconPortRnidSequenceNumber       DisplayString,
        bbFiconPortRnidTag                  OCTET STRING
    }

bbFiconPortAddress OBJECT-TYPE
    SYNTAX      Integer32(1..256) 
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Port address for this entry. It equals port number + 1."
    ::= { bbFiconPortEntry 1 }

bbFiconPortNumber OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The port number"
    ::= { bbFiconPortEntry 2 }

bbFiconPortPdcm OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(32)) 
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The Prohibited Dynamic Connectivity Mask (PDCM) is a bitmap 
        of port addresses that can talk to this port."
    ::= { bbFiconPortEntry 3 }

bbFiconPortRnidFlags OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Bits 0-2 contain a code that describes the validity of bits 3-7 
        of the flags field, the node parameters field, and the node-ID.  
        Bit 3 specifies the node type. Bits 4-7: Reserved."
    ::= { bbFiconPortEntry 4 }

bbFiconPortRnidNodeParameters OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(3))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
        "Additional information about this node."
    ::= { bbFiconPortEntry 5 }

bbFiconPortRnidTypeNumber OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(6))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The type number of the attached device."
    ::= { bbFiconPortEntry 6 }

bbFiconPortRnidModelNumber OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(3))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The model number of the attached device."
    ::= { bbFiconPortEntry 7 }

bbFiconPortRnidManufacturer OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(3))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The ASCII code that identifies the manufacturer
        of the attached device."
    ::= { bbFiconPortEntry 8 }

bbFiconPortRnidPlantOfManufacture OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(2))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The the ASCII plant code that identifies the
        plant of manufacture for the attached device."
    ::= { bbFiconPortEntry 9 }

bbFiconPortRnidSequenceNumber OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(12))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sequence number of the attached device."
    ::= { bbFiconPortEntry 10 }

bbFiconPortRnidTag OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(2))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The physical identifier for the attached device."
    ::= { bbFiconPortEntry 11 }


        -- ****************************************
        -- Zoning
        -- ****************************************

bbZoningCommand OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),
        saveConfig(2),
        clearConfig(3),
        abortConfig(4),
        activateZoneSet(5), -- obsolete
        deactivateZoneSet(6), -- obsolete
        copyActiveConfig(7), -- obsolete
        enableDefaultZone(8), -- obsolete
        disableDefaultZone(9) -- obsolete
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to issue a zoning command.  The value of 
        bbZoneStatus has to be not in the inProgress(2) state for a 
        SET on this object to succeed. Setting it to 'none' has no 
        effect. The activateZoneSet command takes the zone set indicated 
        in bbZoningAdminActiveZoneSet and tries to make it active.
        When retrieved, the last command issued will be returned.
        enableDefaultZone(8) and disableDefaultZone(9) is only available
        in McDATA fabric mode."
    ::= { bbZoning 1 }

bbZoningCommandStatus OBJECT-TYPE
    SYNTAX INTEGER { 
        none(1),
        inProgress(2),
        succeeded(3),
        failed(4)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the zoning command status."
    ::= { bbZoning 2 }

bbZoningAdminActiveZoneSet OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-write
    STATUS      obsolete
    DESCRIPTION
        "The name of the zone set to be made active, via the
        activateZoneSet(5) command."
    ::= { bbZoning 3 }

bbZoningOperActiveZoneSet OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The name of the active zone set.  A zero length 
        string is returned if there's no active zone set."
    ::= { bbZoning 4 }

bbZoningDefaultZoneStatus OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The status of default zone."
    ::= { bbZoning 5 }

-- Definitions for zone sets.

bbZoneSetTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbZoneSetEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of zone sets."
    ::= { bbZoning 6 }

bbZoneSetEntry OBJECT-TYPE
    SYNTAX      BbZoneSetEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the zone set table"
    INDEX   { bbZoneSetSource, bbZoneSetName }
    ::= { bbZoneSetTable 1 }

BbZoneSetEntry ::=
    SEQUENCE {
        bbZoneSetSource       BbZoningSource,
        bbZoneSetName         DisplayString,
        bbZoneSetRowStatus    BbRowStatusWithoutNotInService
    }

bbZoneSetSource OBJECT-TYPE
    SYNTAX      BbZoningSource 
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicates the source of the zone sets: the saved 
        buffer, the transaction buffer, or the fabric's effective (active) 
        zone set. Only the transaction buffer can be written to.  In 
        other words, for a SET, the Source has to be transactionBuffer(2)."
    ::= { bbZoneSetEntry 1 }

bbZoneSetName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The name of this zone set."
    ::= { bbZoneSetEntry 2 }

bbZoneSetRowStatus OBJECT-TYPE
    SYNTAX      BbRowStatusWithoutNotInService
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to create a new row or modify/delete an 
        existing row in this table.  This object is not available
        when bbZoneSetSource is effective(3); the zone information 
        can be obtained via the zone table."
    ::= { bbZoneSetEntry 3 }


-- Definitions for zones.

bbZoneTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbZoneEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of zones."
    ::= { bbZoning 7 }

bbZoneEntry OBJECT-TYPE
    SYNTAX      BbZoneEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the zone table"
    INDEX   { bbZoneSource, bbZoneName }
    ::= { bbZoneTable 1 }

BbZoneEntry ::=
    SEQUENCE {
        bbZoneSource          BbZoningSource,
        bbZoneName            DisplayString,
        bbZoneRowStatus       BbRowStatusWithoutNotInService
    }

bbZoneSource OBJECT-TYPE
    SYNTAX      BbZoningSource 
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicates the source of the zone : the saved 
        buffer, the transaction buffer, or the fabric (active zone set). 
        Only the transaction buffer can be written to.  In other words, 
        for a SET, the Source has to be transactionBuffer(2)."
    ::= { bbZoneEntry 1 }

bbZoneName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The name of this zone."
    ::= { bbZoneEntry 2 }

bbZoneRowStatus OBJECT-TYPE
    SYNTAX      BbRowStatusWithoutNotInService
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to create a new row or modify or
        delete an existing row in this table."
    ::= { bbZoneEntry 3 }

-- Definitions for zone set members.

bbZoneSetMemberTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbZoneSetMemberEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table indicating the members, i.e. zones, for each zone set."
    ::= { bbZoning 8 }

bbZoneSetMemberEntry OBJECT-TYPE
    SYNTAX      BbZoneSetMemberEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the zone set member table"
    INDEX   { bbZoneSetMemberSource, bbZoneSetName, bbZoneName}
    ::= { bbZoneSetMemberTable 1 }

BbZoneSetMemberEntry ::=
    SEQUENCE {
        bbZoneSetMemberSource       BbZoningSource,
        bbZoneSetMemberRowStatus    BbRowStatusWithoutNotInService
    }

bbZoneSetMemberSource OBJECT-TYPE
    SYNTAX      BbZoningSource 
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicates the source of the zone set member: the saved 
        buffer, the transaction buffer, or the fabric (active zone set). 
        Only the transaction buffer can be written to.  In other words, 
        for a SET, the Source has to be transactionBuffer(2)."
    ::= { bbZoneSetMemberEntry 1 }

bbZoneSetMemberRowStatus OBJECT-TYPE
    SYNTAX      BbRowStatusWithoutNotInService
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to create a new row or modify/delete 
        an existing row in this table.  This object is not available
        when bbZoneSetMemberSource is effective(3); the zone 
        information can be obtained via the zone table."
    ::= { bbZoneSetMemberEntry 2 }


-- Definitions for zone members.

bbZoneMemberTable OBJECT-TYPE
    SYNTAX              SEQUENCE OF BbZoneMemberEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The table of zone member entries."
    ::= { bbZoning 9 }

bbZoneMemberEntry OBJECT-TYPE
    SYNTAX      BbZoneMemberEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "An entry of the zone member table"
    INDEX   { bbZoneMemberSource, bbZoneName, bbZoneMemberIdType, bbZoneMemberID }
    ::= { bbZoneMemberTable 1 }

BbZoneMemberEntry ::= 
    SEQUENCE {
        bbZoneMemberSource      BbZoningSource,
        bbZoneMemberIdType      INTEGER,
        bbZoneMemberID          OCTET STRING,
        bbZoneMemberRowStatus   BbRowStatusWithoutNotInService
    }

bbZoneMemberSource OBJECT-TYPE
    SYNTAX      BbZoningSource 
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicates the source of the zone member: the saved 
        buffer, the transaction buffer, or the fabric (active zone set). 
        Only the transaction buffer can be written to.  In other words, 
        for a SET, the Source has to be transactionBuffer(2)."
    ::= { bbZoneMemberEntry 1 }

bbZoneMemberIdType OBJECT-TYPE
    SYNTAX INTEGER {
        portWWN(1),
        domainAndPortID(2),
        fcAddress(3),
        nodeWWN(4)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates what format the ID provided by 
        bbZoneMemberID is in. The options domainAndPortID(2) and 
        nodeWWN(5) are supported only in non-interop mode, 
        i.e. bbFcInteropMode disabled(1). Only portWWN(1) and 
        domainAndPortID(2) are supported."
    ::= { bbZoneMemberEntry 2 }

bbZoneMemberID OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1..8))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An ID to identify this zone member.  The ID could be of
        different type depending on bbZoneMemberIdType."
    ::= { bbZoneMemberEntry 3 }

bbZoneMemberRowStatus OBJECT-TYPE
        SYNTAX      BbRowStatusWithoutNotInService
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION 
        "This object is used to create a new row or modify or
        delete an existing row in this table."
    ::= { bbZoneMemberEntry 4 }

--  ***********************************
--  VF Specific zoning
--  ***********************************

bbVfZoningTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfZoningEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information to zoning on a Virtual Switch."
    ::= { bbZoning 10 }

bbVfZoningEntry OBJECT-TYPE
    SYNTAX      BbVfZoningEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of attributes for a particular Virtual Switch."
    INDEX   { bbVfZoningVfId }
    ::= { bbVfZoningTable 1}

BbVfZoningEntry ::=
    SEQUENCE {
        bbVfZoningVfId                          BbVfID,
        bbVfZoningCommand                       INTEGER,
        bbVfZoningCommandStatus                 INTEGER,
        bbVfZoningAdminActiveZoneSet            DisplayString,
        bbVfZoningOperActiveZoneSet             DisplayString,
        bbVfZoningDefaultZoneStatus             BbEnabledStatus,
        bbVfZoningAdminZoningPolicy             BITS,
        bbVfZoningOperZoningPolicy              BITS
    }

bbVfZoningVfId OBJECT-TYPE
    SYNTAX              BbVfID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The Vf ID index used to query the VfZoning table."
        ::= { bbVfZoningEntry 1 }

bbVfZoningCommand OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),
        activateZoneSet(2),
        deactivateZoneSet(3),
        copyActiveConfig(4),
        enableDefaultZone(5),
        disableDefaultZone(6),
        changeZoningPolicy(7)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to issue a zoning command.  The value of 
        bbVfZoneCommandStatus has to be not in the inProgress(2) state for a 
        SET on this object to succeed. Setting it to 'none' has no 
        effect. The activateZoneSet command takes the zone set indicated 
        in bbVfZoningAdminActiveZoneSet and tries to make it active.
        When retrieved, the last command issued will be returned.
        enableDefaultZone(8) and disableDefaultZone(9) is only available
        in McDATA fabric mode.  Before changing zoning policy, you need
        to set bbVfZoningAdminZoningPolicy."
    ::= { bbVfZoningEntry 2 }

bbVfZoningCommandStatus OBJECT-TYPE
    SYNTAX INTEGER { 
        none(1),
        inProgress(2),
        succeeded(3),
        failed(4)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the zoning command status on this VF."
    ::= { bbVfZoningEntry 3 }

bbVfZoningAdminActiveZoneSet OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The name of the zone set to be made active, via the
        activateZoneSet(2) command."
    ::= { bbVfZoningEntry 4 }

bbVfZoningOperActiveZoneSet OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of the active zone set.  A zero length 
        string is returned if there's no active zone set."
    ::= { bbVfZoningEntry 5 }

bbVfZoningDefaultZoneStatus OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The status of default zone."
    ::= { bbVfZoningEntry 6 }

bbVfZoningAdminZoningPolicy OBJECT-TYPE
    SYNTAX      BITS {
                  prohibitZoneMerge(0),
                  prohibitDefaultZone(1)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object specife the desired zoning control policy. "
    ::= { bbVfZoningEntry 7 }

bbVfZoningOperZoningPolicy OBJECT-TYPE
    SYNTAX      BITS {
                  prohibitZoneMerge(0),
                  prohibitDefaultZone(1)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifes the status of zoning control policy. "
    ::= { bbVfZoningEntry 8 }


-- Definitions for zones within a VF.

bbZoneActiveTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbZoneActiveEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of Active zones in a VF."
    ::= { bbZoning 11 }

bbZoneActiveEntry OBJECT-TYPE
    SYNTAX      BbZoneActiveEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the Active zone table in a VF"
    INDEX   { bbZoneActiveVfID, bbZoneActiveIndex }
    ::= { bbZoneActiveTable 1 }

BbZoneActiveEntry ::=
    SEQUENCE {
        bbZoneActiveVfID                BbVfID,
        bbZoneActiveIndex               Integer32,
        bbZoneActiveName                DisplayString
    }

bbZoneActiveVfID OBJECT-TYPE
    SYNTAX      BbVfID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The VF  ID of on this partition."
    ::= { bbZoneActiveEntry 1 }

bbZoneActiveIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object is an arbitrary unique value."
    ::= { bbZoneActiveEntry 2 }

bbZoneActiveName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of this zone."
    ::= { bbZoneActiveEntry 3 }


-- Definitions for Active zone members in VF.

bbZoneMemberActiveTable OBJECT-TYPE
    SYNTAX              SEQUENCE OF BbZoneMemberActiveEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The table of Active zone member entries in VF."
    ::= { bbZoning 12 }

bbZoneMemberActiveEntry OBJECT-TYPE
    SYNTAX      BbZoneMemberActiveEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "An entry of the Active zone member table in a VF "
    INDEX   { bbZoneMemberActiveVfID, bbZoneActiveIndex, bbZoneMemberActiveIndex}
    ::= { bbZoneMemberActiveTable 1 }

BbZoneMemberActiveEntry ::= 
    SEQUENCE {
        bbZoneMemberActiveVfID          BbVfID,
        bbZoneMemberActiveIndex         Integer32,
        bbZoneMemberActiveIdType        INTEGER,
        bbZoneMemberActiveID            OCTET STRING
    }

bbZoneMemberActiveVfID OBJECT-TYPE
    SYNTAX      BbVfID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The VF  ID of on this partition."
    ::= { bbZoneMemberActiveEntry 1 }

bbZoneMemberActiveIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "This object is an arbitrary unique value."
    ::= { bbZoneMemberActiveEntry 2 }

bbZoneMemberActiveIdType OBJECT-TYPE
    SYNTAX INTEGER {
        portWWN(1),
        domainAndPortID(2),
        fcAddress(3),
        nodeWWN(4)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates what format the ID provided by 
        bbZoneMemberID is in. The options domainAndPortID(2) and 
        nodeWWN(5) are supported only in non-interop mode, 
        i.e. bbFcInteropMode disabled(1). Only portWWN(1) and 
        domainAndPortID(2) are supported."
    ::= { bbZoneMemberActiveEntry 3 }

bbZoneMemberActiveID OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1..8))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An ID to identify this zone member.  The ID could be of
        different type depending on bbZoneMemberIdType."
    ::= { bbZoneMemberActiveEntry 4 }

        -- ****************************************
        -- FSPF
        -- ****************************************

bbFspfVersionNumber OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The version of the standard which the FSPF implementation 
        adheres to."
    ::= { bbFspf 1 }

bbFspfIslPorts OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..128)) 
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "A bitmap of all E_Ports."
    ::= { bbFspf 2 }

bbFspfMinLsArrival OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum amount of time that shall pass before a 
        switch shall accept updates of any given LSR via flooding."
    ::= { bbFspf 3 }

bbFspfMinLsInterval OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum amount of time that shall pass before a 
        switch is allowed to send an LSR update via flooding."
    ::= { bbFspf 4 }

bbFspfStartTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The elapsed uptime of the FSPF task from boot."
    ::= { bbFspf 5 }

bbFspfLsrSelfOrigCount OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of self originated LSRs."
    ::= { bbFspf 6 }

bbFspfLsrRefreshCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times the self originated LSR was refreshed."
    ::= { bbFspf 7 }

bbFspfLsrDelayTimeout OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "milli-seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The LSR delay time out."
    ::= { bbFspf 8 }

bbFspfLsrDelayCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of delayed LSR's."
    ::= { bbFspf 9 }

bbFspfCommand OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),
        enableFspf(2),
        disableFspf(3),
        lsrRefresh(4),
        nbrStatsClear(5)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to issue an FSPF command. Setting it 
        to 'none' has no effect, and when it is retrieved the 
        value will always be 'none'.

        Regardless of whether FSPF is enabled or disabled, 
        route table is active.

        nbrStatsClear(5) clears all the resettable counters for all
        ports in the bbFspfPortTable table.
        "
    ::= { bbFspf 10 }

bbFspfDebugOption OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to facilitate debugging in FSPF."
    ::= { bbFspf 11 }


bbFspfPortTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFspfPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of FSPF interfaces, for E_Ports only."
    ::= { bbFspf 15 }

bbFspfPortEntry OBJECT-TYPE
    SYNTAX      BbFspfPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the FSPF Port table."
    INDEX   { bbFspfPortIndex }
    ::= { bbFspfPortTable 1}

BbFspfPortEntry ::=
    SEQUENCE {
        bbFspfPortIndex                 BbPortIndex, 
        bbFspfPortCost                  Integer32,
        bbFspfPortDelay                 Integer32,
        bbFspfPortLastScnTime           TimeTicks,
        bbFspfPortLastScn               Integer32,
        bbFspfPortLastUpTime            TimeTicks,
        bbFspfPortLastDownTime          Integer32,
        bbFspfPortDownReason            Integer32,
        bbFspfPortIfState               INTEGER,
        bbFspfPortNbrState              INTEGER,
        bbFspfPortNbrOptions            Integer32,
        bbFspfPortNbrId                 Integer32,
        bbFspfPortRemPort               Integer32,
        bbFspfPortNFlags                Integer32,
        bbFspfPortInactTimeout          Integer32,
        bbFspfPortHelloTimeout          Integer32,
        bbFspfPortRxmtTimeout           Integer32,
        bbFspfPortUpCount               Counter32,
        bbFspfPortDownCount             Counter32,
        bbFspfPortNbrInitCount          Counter32,
        bbFspfPortCmdAcceptCount        BbResettableCounter32,
        bbFspfPortInvCmdCount           BbResettableCounter32,
        bbFspfPortHelloInCount          BbResettableCounter32,
        bbFspfPortInvHelloCount         BbResettableCounter32,
        bbFspfPortLsuInCount            BbResettableCounter32,
        bbFspfPortLsaInCount            BbResettableCounter32,
        bbFspfPortHelloOutCount         BbResettableCounter32,
        bbFspfPortAttemptHelloOutCount  BbResettableCounter32,
        bbFspfPortAttemptLsuOutCount    BbResettableCounter32,
        bbFspfPortLsuOutCount           BbResettableCounter32,
        bbFspfPortLsaOutCount           BbResettableCounter32,
        bbFspfPortAttemptLsaOutCount    BbResettableCounter32,
        bbFspfPortCommand               INTEGER
    }

bbFspfPortIndex OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A number that uniquely identifies this port. It equals the port number + 1." 
    ::= { bbFspfPortEntry 1 }

bbFspfPortCost OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The cost of sending a frame over the ISL connected to
        this port. The value 1000 indicates a 1 Gb/s link."
    ::= { bbFspfPortEntry 2 }

bbFspfPortDelay OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The delay incurred by a frame transmitted on this ISL. A value
        required by FSPF to be added to LSR's which are flooded.  It's
        value as defined by the RFC is '1', but it can be modified in 
        order to address different links."
    ::= { bbFspfPortEntry 3 }

bbFspfPortLastScnTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The time the last State Change Notification (RSCN) was received to 
        this interface."
    ::= { bbFspfPortEntry 4 }

bbFspfPortLastScn OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The type of the last State Change Notification (RSCN) received on 
        this port."
    ::= { bbFspfPortEntry 5 }

bbFspfPortLastUpTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The last time this port came up."
    ::= { bbFspfPortEntry 6 }

bbFspfPortLastDownTime OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The last time this port went down."
    ::= { bbFspfPortEntry 7 }

bbFspfPortDownReason OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The type of State Change Notification (RSCN) that caused the port
        to go down."
    ::= { bbFspfPortEntry 8 }

bbFspfPortIfState OBJECT-TYPE
    SYNTAX INTEGER {
        up(1),
        down(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current physical state of this port. A port in the down(2) 
        state cannot be used to route traffic to other switches."
    ::= { bbFspfPortEntry 9 }

bbFspfPortNbrState OBJECT-TYPE
    SYNTAX INTEGER {
        unknown(1),
        down(2),
        init(3),
        exchange(4),
        ackWait(5),
        dbWait(6),
        full(7)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current state of this port relating to its neighbor. 
        This E_Port is used to route traffic to other switches 
        only if the state is full(7)."
    ::= { bbFspfPortEntry 10 }

bbFspfPortNbrOptions OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "Neighbor capabilities."
    ::= { bbFspfPortEntry 11 }

bbFspfPortNbrId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The domain ID of the adjacent neighbor switch."
    ::= { bbFspfPortEntry 12 }

bbFspfPortRemPort OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The port number of the remote switch connected to this port."
    ::= { bbFspfPortEntry 13 }

bbFspfPortNFlags OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The internal FSPF flags."
    ::= { bbFspfPortEntry 14 }

bbFspfPortInactTimeout OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "milli-seconds"
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The inactivity time out value. When this time out expires, 
        the adjacency with the neighbor switch is broken and the 
        new paths are computed to all possible destination switches 
        in the fabric."
    ::= { bbFspfPortEntry 15 }

bbFspfPortHelloTimeout OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "milli-seconds"
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The hello time out value. When this time out expires, a hello 
        frame is sent to the neighbor switch through this port."
    ::= { bbFspfPortEntry 16 }

bbFspfPortRxmtTimeout OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "milli-seconds"
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The retransmission time out value. It is used to transmit 
        topology information to the neighbor switch.  If no 
        acknowledgement is received within this time-out, frame is 
        retransmitted."
    ::= { bbFspfPortEntry 17 }

bbFspfPortUpCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times this port came Up with respect to FSPF."
    ::= { bbFspfPortEntry 18 }

bbFspfPortDownCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times this port went down."
    ::= { bbFspfPortEntry 19 }

bbFspfPortNbrInitCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times this neighbor was initialized, without the
        interface going down."
    ::= { bbFspfPortEntry 20 }

bbFspfPortCmdAcceptCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of commands accepted from the neighbor switch.
        Number include Hellos, Link State Updates, and Link State
        acknowledgments."
    ::= { bbFspfPortEntry 21 }

bbFspfPortInvCmdCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of invalid commands received from the neighbor switch.
        Usually commands with an FSPF version number higher than the one
        running on the local switch."
    ::= { bbFspfPortEntry 22 }

bbFspfPortHelloInCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Hello frames received from the neighbor switch."
    ::= { bbFspfPortEntry 23 }

bbFspfPortInvHelloCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of invalid hello frames (with invalid parameters)
        received from the neighbor switch."
    ::= { bbFspfPortEntry 24 }

bbFspfPortLsuInCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of LSUs received from the neighbor switch."
    ::= { bbFspfPortEntry 25 }

bbFspfPortLsaInCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of LSAs received from the neighbor switch."
    ::= { bbFspfPortEntry 26 }

bbFspfPortHelloOutCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Hello frames transmitted to the neighbor switch."
    ::= { bbFspfPortEntry 27 }

bbFspfPortAttemptHelloOutCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of attempted transmissions of Hello frames to the 
        neighbor switch."
    ::= { bbFspfPortEntry 28 }

bbFspfPortAttemptLsuOutCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of attempted transmissions of LSUs to the neighbor
        switch."
    ::= { bbFspfPortEntry 29 }

bbFspfPortLsuOutCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of LSUs transmitted to the neighbor switch."
    ::= { bbFspfPortEntry 30 }

bbFspfPortLsaOutCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of LSAs transmitted to the neighbor switch."
    ::= { bbFspfPortEntry 31 }

bbFspfPortAttemptLsaOutCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of attempted transmissions of LSAs to the 
        neighbor switch."
    ::= { bbFspfPortEntry 32 }

bbFspfPortCommand OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),
        nbrStatsClear(2)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to issue an FSPF port command. Setting 
        it to 'none' has no effect, and when it is retrieved the 
        value will always be 'none'.

        nbrStatsClear(2) clears all the resettable counters in this
        table for this port.
        "
    ::= { bbFspfPortEntry 33 }

bbFspfLsrTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFspfLsrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A Link State Records table for topology."
    ::= { bbFspf 20 }

bbFspfLsrEntry OBJECT-TYPE
    SYNTAX      BbFspfLsrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the FSPF LSR table."
    INDEX   { bbFspfLsrLinkId }
    ::= { bbFspfLsrTable 1}

BbFspfLsrEntry ::=
    SEQUENCE {
        bbFspfLsrLinkId                 Integer32,
        bbFspfLsrAdvId                  Integer32,
        bbFspfLsrIncarn                 Unsigned32,
        bbFspfLsrLen                    Integer32,
        bbFspfLsrChecksum               Integer32,
        bbFspfLsrLinkCount              Integer32,
        bbFspfLsrAge                    Integer32,
        bbFspfLsrType                   Integer32,
        bbFspfLsrOptions                Integer32,
        bbFspfLsrFlags                  Integer32,
        bbFspfLsrEarly                  Integer32,
        bbFspfLsrIgnored                Integer32,
        bbFspfLsrLastIgnored            TimeTicks,
        bbFspfLsrInstallTime            TimeTicks
    }

bbFspfLsrLinkId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The Link ID of the LSR.  It is the domain ID of the given LSR."
    ::= { bbFspfLsrEntry 1 }

bbFspfLsrAdvId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The domain ID of the switch that originated the LSR."
    ::= { bbFspfLsrEntry 2 }

bbFspfLsrIncarn OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The incarnation number for this LSR."
    ::= { bbFspfLsrEntry 3 }

bbFspfLsrLen OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "bytes"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total length of this LSR, includes header and
        link state information for all links."
    ::= { bbFspfLsrEntry 4 }

bbFspfLsrChecksum OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The checksum of total LSR, excluding the age field."
    ::= { bbFspfLsrEntry 5 }

bbFspfLsrLinkCount OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of links in this LSR.  Each link represents a
        neighbor in the FULL state."
    ::= { bbFspfLsrEntry 6 }

bbFspfLsrAge OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The age of this LSR."
    ::= { bbFspfLsrEntry 7 }

bbFspfLsrType OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The type of the LSR (always 1)."
    ::= { bbFspfLsrEntry 8 }

bbFspfLsrOptions OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "LSR options (always 0)."
    ::= { bbFspfLsrEntry 9 }

bbFspfLsrFlags OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The 'flags' field in one LSU. Always 0."
    ::= { bbFspfLsrEntry 10 }

bbFspfLsrEarly OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of LSRs accepted even though they were not
        sufficiently spaced apart."
    ::= { bbFspfLsrEntry 11 }

bbFspfLsrIgnored OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of LSRs which were not accepted because they were
        not sufficiently spaced apart."
    ::= { bbFspfLsrEntry 12 }

bbFspfLsrLastIgnored OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The last time an LSR was ignored."
    ::= { bbFspfLsrEntry 13 }

bbFspfLsrInstallTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time this LSR was installed in the database since boot."
    ::= { bbFspfLsrEntry 14 }

bbFspfLdTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFspfLdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of LSR descriptors."
    ::= { bbFspf 21 }

bbFspfLdEntry OBJECT-TYPE
    SYNTAX      BbFspfLdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the FSPF Link Descriptor table."
    INDEX   { 
        bbFspfLdLinkStateId,
        bbFspfLdLinkId,
        bbFspfLdOutPort
    }
    ::= { bbFspfLdTable 1}

BbFspfLdEntry ::=
    SEQUENCE {
        bbFspfLdLinkStateId                 Integer32,
        bbFspfLdLinkId                      Integer32,
        bbFspfLdOutPort                     BbPortIndex,
        bbFspfLdRemPort                     Integer32,
        bbFspfLdCost                        Integer32,
        bbFspfLdLinkType                    Integer32
    }

bbFspfLdLinkStateId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The Link State ID of the LSR to which the LDs pertain.  It 
        is the domain ID of the given LSR."
    ::= { bbFspfLdEntry 1 }

bbFspfLdLinkId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The domain ID of the switch on the other side of the link."
    ::= { bbFspfLdEntry 2 }

bbFspfLdOutPort OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicating port on the local switch. 
        It equals the port number + 1."
    ::= { bbFspfLdEntry 3 }

bbFspfLdRemPort OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The port number on the other side of the link."
    ::= { bbFspfLdEntry 4 }

bbFspfLdCost OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The cost of this link."
    ::= { bbFspfLdEntry 5 }

bbFspfLdLinkType OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The type of the Link Descriptor.  Always 1."
    ::= { bbFspfLdEntry 6 }

bbFspfRouteTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFspfRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of dynamic FSPF routes."
    ::= { bbFspf 22 }

bbFspfRouteEntry OBJECT-TYPE
    SYNTAX      BbFspfRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A route table of dynamic routes."
    INDEX   { 
        bbFspfRouteDomainId,
        bbFspfRouteOutPort
    }
    ::= { bbFspfRouteTable 1}

BbFspfRouteEntry ::=
    SEQUENCE {
        bbFspfRouteDomainId             BbDomainId,
        bbFspfRouteOutPort              BbPortIndex,
        bbFspfRouteInPorts              OCTET STRING,
        bbFspfRouteHopCount             Integer32,
        bbFspfRouteMetric               Integer32
    }

bbFspfRouteDomainId OBJECT-TYPE
    SYNTAX      BbDomainId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The switch element number reachable by this entry."
    ::= { bbFspfRouteEntry 1 }

bbFspfRouteOutPort OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The number used to reach the route in a given route table entry. 
        It equals the port number + 1."
    ::= { bbFspfRouteEntry 2 }

bbFspfRouteInPorts OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..128)) 
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A hexadecimal string which defines the bitmap of all ports
        that can reach the domain ID described by this route
        entry using bbFspfRouteOutPort."
    ::= { bbFspfRouteEntry 3 }

bbFspfRouteHopCount OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of hops to reach the destination domain ID."
    ::= { bbFspfRouteEntry 4 }

bbFspfRouteMetric OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The cost of reaching destination domain."
    ::= { bbFspfRouteEntry 5 }


bbFspfDomainTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFspfDomainEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of FSPF Domains."
    ::= { bbFspf 23 }

bbFspfDomainEntry OBJECT-TYPE
    SYNTAX      BbFspfDomainEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the FSPF Domain table."
    INDEX   { bbFspfDomainId }
    ::= { bbFspfDomainTable 1}

BbFspfDomainEntry ::=
    SEQUENCE {
        bbFspfDomainId                  BbDomainId,
        bbFspfDomainPortCount           Integer32,
        bbFspfDomainWwn                 BbFcWWN,
        bbFspfDomainIsPrincipal         TruthValue    
    }

bbFspfDomainId OBJECT-TYPE
    SYNTAX      BbDomainId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The domain ID of the switch."
    ::= { bbFspfDomainEntry 1 }

bbFspfDomainPortCount OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of E_Ports available."
    ::= { bbFspfDomainEntry 2 }

bbFspfDomainWwn OBJECT-TYPE
    SYNTAX      BbFcWWN
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The world wide name of this switch."
    ::= { bbFspfDomainEntry 3 }

bbFspfDomainIsPrincipal OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Whether the switch with this domain ID is the 
        principal switch."
    ::= { bbFspfDomainEntry 4 }

bbFspfConnTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFspfConnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of FSPF Connectivities."
    ::= { bbFspf 24 }

bbFspfConnEntry OBJECT-TYPE
    SYNTAX      BbFspfConnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the FSPF Connectivity table."
    INDEX   { bbFspfConnDestDomain, bbFspfConnDestPort }
    ::= { bbFspfConnTable 1}

BbFspfConnEntry ::=
    SEQUENCE {
        bbFspfConnDestDomain            Integer32,
        bbFspfConnDestPort              BbPortIndex,
        bbFspfConnOrigDomain            Integer32,
        bbFspfConnOrigPort              Integer32,
        bbFspfConnCost                  Integer32,
        bbFspfConnDomainWwn             BbFcWWN
    }

bbFspfConnDestDomain OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The destination domain of this connection entry."
    ::= { bbFspfConnEntry 1 }

bbFspfConnDestPort OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object specifies destination port of this connection entry. 
        It equals the port number +1."
    ::= { bbFspfConnEntry 2 }

bbFspfConnOrigDomain OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The originating domain of this connection entry."
    ::= { bbFspfConnEntry 3 }

bbFspfConnOrigPort OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The originating port of this connection entry."
    ::= { bbFspfConnEntry 4 }

bbFspfConnCost OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The cost of this connection entry."
    ::= { bbFspfConnEntry 5 }

bbFspfConnDomainWwn OBJECT-TYPE
    SYNTAX      BbFcWWN
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The world wide name of this connection entry."
    ::= { bbFspfConnEntry 6 }


bbFspfInactivityTimeout OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "milli-seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The inactivity time out value. When this time out expires, 
        the adjacency with the neighbor switch is broken and the 
        new paths are computed to all possible destination switches 
        in the fabric."
    ::= { bbFspf 25 }

bbFspfHelloTimeout OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "milli-seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The hello time out value. When this time out expires, a hello 
        frame is sent to the neighbor switch through this port."
    ::= { bbFspf 26 }

bbFspfRxmtTimeout OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "milli-seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The retransmission time out value. It is used to transmit 
        topology information to the neighbor switch.  If no 
        acknowledgement is received within this time-out, frame is 
        retransmitted."
    ::= { bbFspf 27 }

bbVfFspfTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfFspfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information to FSPF on a Virtual Switch."
    ::= { bbFspf 28 }

bbVfFspfEntry OBJECT-TYPE
    SYNTAX      BbVfFspfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of attributes for a particular Virtual Switch."
    INDEX   { bbVfID }
    ::= { bbVfFspfTable 1}

BbVfFspfEntry ::=
    SEQUENCE {
        bbVfFspfIslPorts                OCTET STRING,
        bbVfFspfLsrSelfOrigCount        Integer32,
        bbVfFspfLsrRefreshCount         Counter32,
        bbVfFspfLsrDelayCount           Counter32,
        bbVfFspfCommand                 INTEGER,
        bbVfFspfLsrDelayTimeout         Integer32,
        bbVfFspfDebugOption             Integer32,
        bbVfFspfAssignAllIslEqualCostState BbEnabledStatus
    }

bbVfFspfIslPorts OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..128)) 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A bitmap of all E_Ports with in a VF."
    ::= { bbVfFspfEntry 1 }

bbVfFspfLsrSelfOrigCount OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of self originated LSRs."
    ::= { bbVfFspfEntry 2 }

bbVfFspfLsrRefreshCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times the self originated LSR was refreshed."
    ::= { bbVfFspfEntry 3 }

bbVfFspfLsrDelayCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of delayed LSR's in this VF."
    ::= { bbVfFspfEntry 4 }

bbVfFspfCommand OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),
        enableFspf(2),
        disableFspf(3),
        lsrRefresh(4),
        nbrStatsClear(5)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to issue an FSPF command. Setting it 
        to 'none' has no effect, and when it is retrieved the 
        value will always be 'none'.

        Regardless of whether FSPF is enabled or disabled, 
        route table is active.

        nbrStatsClear(5) clears all the resettable counters for all
        ports in the bbFspfPortTable table.
        "
    ::= { bbVfFspfEntry 5 }

bbVfFspfLsrDelayTimeout OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "milli-seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The LSR delay time out."
    ::= { bbVfFspfEntry 6 }

bbVfFspfDebugOption OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to facilitate debugging in FSPF."
    ::= { bbVfFspfEntry 7 }

bbVfFspfAssignAllIslEqualCostState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to configure whether all outgoing ISLs on
        this switch should be assigned  same cost or not.  If enabled then
        the FSPF Cost will be 1000, regardless of the port speed.  If
        disabled then the costs would be: 1G=1000, 2G=1000, 4G=250, 10G=100."
       DEFVAL { disabled }
    ::= { bbVfFspfEntry 8 }

bbVfFspfPortTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfFspfPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of FSPF interfaces, for E_Ports only."
    ::= { bbFspf 29 }

bbVfFspfPortEntry OBJECT-TYPE
    SYNTAX      BbVfFspfPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the FSPF Port table."
    INDEX   { bbVfID, bbVfFspfPortIndex }
    ::= { bbVfFspfPortTable 1}

BbVfFspfPortEntry ::=
    SEQUENCE {
        bbVfFspfPortIndex                 BbPortIndex, 
        bbVfFspfPortCost                  Integer32,
        bbVfFspfPortDelay                 Integer32,
        bbVfFspfPortLastScnTime           TimeTicks,
        bbVfFspfPortLastScn               Integer32,
        bbVfFspfPortLastUpTime            TimeTicks,
        bbVfFspfPortLastDownTime          Integer32,
        bbVfFspfPortDownReason            Integer32,
        bbVfFspfPortIfState               INTEGER,
        bbVfFspfPortNbrState              INTEGER,
        bbVfFspfPortNbrOptions            Integer32,
        bbVfFspfPortNbrId                 Integer32,
        bbVfFspfPortRemPort               Integer32,
        bbVfFspfPortNFlags                Integer32,
        bbVfFspfPortInactTimeout          Integer32,
        bbVfFspfPortHelloTimeout          Integer32,
        bbVfFspfPortRxmtTimeout           Integer32,
        bbVfFspfPortUpCount               Counter32,
        bbVfFspfPortDownCount             Counter32,
        bbVfFspfPortNbrInitCount          Counter32,
        bbVfFspfPortCmdAcceptCount        BbResettableCounter32,
        bbVfFspfPortInvCmdCount           BbResettableCounter32,
        bbVfFspfPortHelloInCount          BbResettableCounter32,
        bbVfFspfPortInvHelloCount         BbResettableCounter32,
        bbVfFspfPortLsuInCount            BbResettableCounter32,
        bbVfFspfPortLsaInCount            BbResettableCounter32,
        bbVfFspfPortHelloOutCount         BbResettableCounter32,
        bbVfFspfPortAttemptHelloOutCount  BbResettableCounter32,
        bbVfFspfPortAttemptLsuOutCount    BbResettableCounter32,
        bbVfFspfPortLsuOutCount           BbResettableCounter32,
        bbVfFspfPortLsaOutCount           BbResettableCounter32,
        bbVfFspfPortAttemptLsaOutCount    BbResettableCounter32,
        bbVfFspfPortCommand               INTEGER
    }

bbVfFspfPortIndex OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A number that uniquely identifies this port. It equals the port number + 1." 
    ::= { bbVfFspfPortEntry 1 }

bbVfFspfPortCost OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The cost of sending a frame over the ISL connected to
        this port. The value 1000 indicates a 1 Gb/s link."
    ::= { bbVfFspfPortEntry 2 }

bbVfFspfPortDelay OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The delay incurred by a frame transmitted on this ISL. A value
        required by FSPF to be added to LSR's which are flooded.  It's
        value as defined by the RFC is '1', but it can be modified in 
        order to address different links."
    ::= { bbVfFspfPortEntry 3 }

bbVfFspfPortLastScnTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The time the last State Change Notification (RSCN) was received to 
        this interface."
    ::= { bbVfFspfPortEntry 4 }

bbVfFspfPortLastScn OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The type of the last State Change Notification (RSCN) received on 
        this port."
    ::= { bbVfFspfPortEntry 5 }

bbVfFspfPortLastUpTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The last time this port came up."
    ::= { bbVfFspfPortEntry 6 }

bbVfFspfPortLastDownTime OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The last time this port went down."
    ::= { bbVfFspfPortEntry 7 }

bbVfFspfPortDownReason OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The type of State Change Notification (RSCN) that caused the port
        to go down."
    ::= { bbVfFspfPortEntry 8 }

bbVfFspfPortIfState OBJECT-TYPE
    SYNTAX INTEGER {
        up(1),
        down(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current physical state of this port. A port in the down(2) 
        state cannot be used to route traffic to other switches."
    ::= { bbVfFspfPortEntry 9 }

bbVfFspfPortNbrState OBJECT-TYPE
    SYNTAX INTEGER {
        unknown(1),
        down(2),
        init(3),
        exchange(4),
        ackWait(5),
        dbWait(6),
        full(7)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current state of this port relating to its neighbor. 
        This E_Port is used to route traffic to other switches 
        only if the state is full(7)."
    ::= { bbVfFspfPortEntry 10 }

bbVfFspfPortNbrOptions OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "Neighbor capabilities."
    ::= { bbVfFspfPortEntry 11 }

bbVfFspfPortNbrId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The domain ID of the adjacent neighbor switch."
    ::= { bbVfFspfPortEntry 12 }

bbVfFspfPortRemPort OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The port number of the remote switch connected to this port."
    ::= { bbVfFspfPortEntry 13 }

bbVfFspfPortNFlags OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The internal FSPF flags."
    ::= { bbVfFspfPortEntry 14 }

bbVfFspfPortInactTimeout OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "milli-seconds"
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The inactivity time out value. When this time out expires, 
        the adjacency with the neighbor switch is broken and the 
        new paths are computed to all possible destination switches 
        in the fabric."
    ::= { bbVfFspfPortEntry 15 }

bbVfFspfPortHelloTimeout OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "milli-seconds"
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The hello time out value. When this time out expires, a hello 
        frame is sent to the neighbor switch through this port."
    ::= { bbVfFspfPortEntry 16 }

bbVfFspfPortRxmtTimeout OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "milli-seconds"
    MAX-ACCESS  read-only
    STATUS      obsolete
    DESCRIPTION
        "The retransmission time out value. It is used to transmit 
        topology information to the neighbor switch.  If no 
        acknowledgement is received within this time-out, frame is 
        retransmitted."
    ::= { bbVfFspfPortEntry 17 }

bbVfFspfPortUpCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times this port came Up with respect to FSPF."
    ::= { bbVfFspfPortEntry 18 }

bbVfFspfPortDownCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times this port went down."
    ::= { bbVfFspfPortEntry 19 }

bbVfFspfPortNbrInitCount OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times this neighbor was initialized, without the
        interface going down."
    ::= { bbVfFspfPortEntry 20 }

bbVfFspfPortCmdAcceptCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total number of commands accepted from the neighbor switch.
        Number include Hellos, Link State Updates, and Link State
        acknowledgments."
    ::= { bbVfFspfPortEntry 21 }

bbVfFspfPortInvCmdCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of invalid commands received from the neighbor switch.
        Usually commands with an FSPF version number higher than the one
        running on the local switch."
    ::= { bbVfFspfPortEntry 22 }

bbVfFspfPortHelloInCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Hello frames received from the neighbor switch."
    ::= { bbVfFspfPortEntry 23 }

bbVfFspfPortInvHelloCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of invalid hello frames (with invalid parameters)
        received from the neighbor switch."
    ::= { bbVfFspfPortEntry 24 }

bbVfFspfPortLsuInCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of LSUs received from the neighbor switch."
    ::= { bbVfFspfPortEntry 25 }

bbVfFspfPortLsaInCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of LSAs received from the neighbor switch."
    ::= { bbVfFspfPortEntry 26 }

bbVfFspfPortHelloOutCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Hello frames transmitted to the neighbor switch."
    ::= { bbVfFspfPortEntry 27 }

bbVfFspfPortAttemptHelloOutCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of attempted transmissions of Hello frames to the 
        neighbor switch."
    ::= { bbVfFspfPortEntry 28 }

bbVfFspfPortAttemptLsuOutCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of attempted transmissions of LSUs to the neighbor
        switch."
    ::= { bbVfFspfPortEntry 29 }

bbVfFspfPortLsuOutCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of LSUs transmitted to the neighbor switch."
    ::= { bbVfFspfPortEntry 30 }

bbVfFspfPortLsaOutCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of LSAs transmitted to the neighbor switch."
    ::= { bbVfFspfPortEntry 31 }

bbVfFspfPortAttemptLsaOutCount OBJECT-TYPE
    SYNTAX      BbResettableCounter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of attempted transmissions of LSAs to the 
        neighbor switch."
    ::= { bbVfFspfPortEntry 32 }

bbVfFspfPortCommand OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),
        nbrStatsClear(2)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to issue an FSPF port command. Setting 
        it to 'none' has no effect, and when it is retrieved the 
        value will always be 'none'.

        nbrStatsClear(2) clears all the resettable counters in this
        table for this port.
        "
    ::= { bbVfFspfPortEntry 33 }

bbVfFspfLsrTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfFspfLsrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A Link State Records table for topology."
    ::= { bbFspf 30 }

bbVfFspfLsrEntry OBJECT-TYPE
    SYNTAX      BbVfFspfLsrEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the FSPF LSR table."
    INDEX   { bbVfID, bbVfFspfLsrLinkId }
    ::= { bbVfFspfLsrTable 1}

BbVfFspfLsrEntry ::=
    SEQUENCE {
        bbVfFspfLsrLinkId                 Integer32,
        bbVfFspfLsrAdvId                  Integer32,
        bbVfFspfLsrIncarn                 Unsigned32,
        bbVfFspfLsrLen                    Integer32,
        bbVfFspfLsrChecksum               Integer32,
        bbVfFspfLsrLinkCount              Integer32,
        bbVfFspfLsrAge                    Integer32,
        bbVfFspfLsrType                   Integer32,
        bbVfFspfLsrOptions                Integer32,
        bbVfFspfLsrFlags                  Integer32,
        bbVfFspfLsrEarly                  Integer32,
        bbVfFspfLsrIgnored                Integer32,
        bbVfFspfLsrLastIgnored            TimeTicks,
        bbVfFspfLsrInstallTime            TimeTicks
    }

bbVfFspfLsrLinkId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The Link ID of the LSR.  It is the domain ID of the given LSR."
    ::= { bbVfFspfLsrEntry 1 }

bbVfFspfLsrAdvId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The domain ID of the switch that originated the LSR."
    ::= { bbVfFspfLsrEntry 2 }

bbVfFspfLsrIncarn OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The incarnation number for this LSR."
    ::= { bbVfFspfLsrEntry 3 }

bbVfFspfLsrLen OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "bytes"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total length of this LSR, includes header and
        link state information for all links."
    ::= { bbVfFspfLsrEntry 4 }

bbVfFspfLsrChecksum OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The checksum of total LSR, excluding the age field."
    ::= { bbVfFspfLsrEntry 5 }

bbVfFspfLsrLinkCount OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of links in this LSR.  Each link represents a
        neighbor in the FULL state."
    ::= { bbVfFspfLsrEntry 6 }

bbVfFspfLsrAge OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The age of this LSR."
    ::= { bbVfFspfLsrEntry 7 }

bbVfFspfLsrType OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The type of the LSR (always 1)."
    ::= { bbVfFspfLsrEntry 8 }

bbVfFspfLsrOptions OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "LSR options (always 0)."
    ::= { bbVfFspfLsrEntry 9 }

bbVfFspfLsrFlags OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The 'flags' field in one LSU. Always 0."
    ::= { bbVfFspfLsrEntry 10 }

bbVfFspfLsrEarly OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of LSRs accepted even though they were not
        sufficiently spaced apart."
    ::= { bbVfFspfLsrEntry 11 }

bbVfFspfLsrIgnored OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of LSRs which were not accepted because they were
        not sufficiently spaced apart."
    ::= { bbVfFspfLsrEntry 12 }

bbVfFspfLsrLastIgnored OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The last time an LSR was ignored."
    ::= { bbVfFspfLsrEntry 13 }

bbVfFspfLsrInstallTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time this LSR was installed in the database since boot."
    ::= { bbVfFspfLsrEntry 14 }

bbVfFspfLdTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfFspfLdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of LSR descriptors."
    ::= { bbFspf 31 }

bbVfFspfLdEntry OBJECT-TYPE
    SYNTAX      BbVfFspfLdEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the FSPF Link Descriptor table."
    INDEX   { 
        bbVfID,
        bbVfFspfLdLinkStateId,
        bbVfFspfLdLinkId,
        bbVfFspfLdOutPort
    }
    ::= { bbVfFspfLdTable 1}

BbVfFspfLdEntry ::=
    SEQUENCE {
        bbVfFspfLdLinkStateId                 Integer32,
        bbVfFspfLdLinkId                      Integer32,
        bbVfFspfLdOutPort                     BbPortIndex,
        bbVfFspfLdRemPort                     Integer32,
        bbVfFspfLdCost                        Integer32,
        bbVfFspfLdLinkType                    Integer32
    }

bbVfFspfLdLinkStateId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The Link State ID of the LSR to which the LDs pertain.  It 
        is the domain ID of the given LSR."
    ::= { bbVfFspfLdEntry 1 }

bbVfFspfLdLinkId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The domain ID of the switch on the other side of the link."
    ::= { bbVfFspfLdEntry 2 }

bbVfFspfLdOutPort OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicating port on the local switch. 
        It equals the port number + 1."
    ::= { bbVfFspfLdEntry 3 }

bbVfFspfLdRemPort OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The port number on the other side of the link."
    ::= { bbVfFspfLdEntry 4 }

bbVfFspfLdCost OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The cost of this link."
    ::= { bbVfFspfLdEntry 5 }

bbVfFspfLdLinkType OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The type of the Link Descriptor.  Always 1."
    ::= { bbVfFspfLdEntry 6 }

bbVfFspfRouteTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfFspfRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of dynamic FSPF routes."
    ::= { bbFspf 32 }

bbVfFspfRouteEntry OBJECT-TYPE
    SYNTAX      BbVfFspfRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A route table of dynamic routes."
    INDEX   { 
        bbVfID, bbVfFspfRouteDomainId,
        bbVfFspfRouteOutPort
    }
    ::= { bbVfFspfRouteTable 1}

BbVfFspfRouteEntry ::=
    SEQUENCE {
        bbVfFspfRouteDomainId             BbDomainId,
        bbVfFspfRouteOutPort              BbPortIndex,
        bbVfFspfRouteInPorts              OCTET STRING,
        bbVfFspfRouteHopCount             Integer32,
        bbVfFspfRouteMetric               Integer32
    }

bbVfFspfRouteDomainId OBJECT-TYPE
    SYNTAX      BbDomainId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The switch element number reachable by this entry."
    ::= { bbVfFspfRouteEntry 1 }

bbVfFspfRouteOutPort OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The number used to reach the route in a given route table entry. 
        It equals the port number + 1."
    ::= { bbVfFspfRouteEntry 2 }

bbVfFspfRouteInPorts OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..128)) 
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A hexadecimal string which defines the bitmap of all ports
        that can reach the domain ID described by this route
        entry using bbVfFspfRouteOutPort."
    ::= { bbVfFspfRouteEntry 3 }

bbVfFspfRouteHopCount OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The number of hops to reach the destination domain ID."
    ::= { bbVfFspfRouteEntry 4 }

bbVfFspfRouteMetric OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The cost of reaching destination domain."
    ::= { bbVfFspfRouteEntry 5 }


bbVfFspfDomainTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfFspfDomainEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of FSPF Domains."
    ::= { bbFspf 33 }

bbVfFspfDomainEntry OBJECT-TYPE
    SYNTAX      BbVfFspfDomainEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the FSPF Domain table."
    INDEX   { bbVfID, bbVfFspfDomainId }
    ::= { bbVfFspfDomainTable 1}

BbVfFspfDomainEntry ::=
    SEQUENCE {
        bbVfFspfDomainId                  BbDomainId,
        bbVfFspfDomainPortCount           Integer32,
        bbVfFspfDomainWwn                 BbFcWWN,
        bbVfFspfDomainIsPrincipal         TruthValue    
    }

bbVfFspfDomainId OBJECT-TYPE
    SYNTAX      BbDomainId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The domain ID of the switch."
    ::= { bbVfFspfDomainEntry 1 }

bbVfFspfDomainPortCount OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of E_Ports available."
    ::= { bbVfFspfDomainEntry 2 }

bbVfFspfDomainWwn OBJECT-TYPE
    SYNTAX      BbFcWWN
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The world wide name of this switch."
    ::= { bbVfFspfDomainEntry 3 }

bbVfFspfDomainIsPrincipal OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Whether the switch with this domain ID is the 
        principal switch."
    ::= { bbVfFspfDomainEntry 4 }

bbVfFspfConnTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfFspfConnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of FSPF Connectivities."
    ::= { bbFspf 34 }

bbVfFspfConnEntry OBJECT-TYPE
    SYNTAX      BbVfFspfConnEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the FSPF Connectivity table."
    INDEX   { bbVfID, bbVfFspfConnDestDomain, bbVfFspfConnDestPort }
    ::= { bbVfFspfConnTable 1}

BbVfFspfConnEntry ::=
    SEQUENCE {
        bbVfFspfConnDestDomain            Integer32,
        bbVfFspfConnDestPort              BbPortIndex,
        bbVfFspfConnOrigDomain            Integer32,
        bbVfFspfConnOrigPort              Integer32,
        bbVfFspfConnCost                  Integer32,
        bbVfFspfConnDomainWwn             BbFcWWN
    }

bbVfFspfConnDestDomain OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The destination domain of this connection entry."
    ::= { bbVfFspfConnEntry 1 }

bbVfFspfConnDestPort OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object specifies destination port of this connection entry. 
        It equals the port number +1."
    ::= { bbVfFspfConnEntry 2 }

bbVfFspfConnOrigDomain OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The originating domain of this connection entry."
    ::= { bbVfFspfConnEntry 3 }

bbVfFspfConnOrigPort OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The originating port of this connection entry."
    ::= { bbVfFspfConnEntry 4 }

bbVfFspfConnCost OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The cost of this connection entry."
    ::= { bbVfFspfConnEntry 5 }

bbVfFspfConnDomainWwn OBJECT-TYPE
    SYNTAX      BbFcWWN
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The world wide name of this connection entry."
    ::= { bbVfFspfConnEntry 6 }


    -- ****************************************
    -- Switch/Port/Fabric Binding 
    -- SANTegrity 1 Features
    -- ****************************************

bbAccessControlFabricCommand OBJECT-TYPE 
    SYNTAX INTEGER {
        none(1),
        enableFabricBinding(2),
        disableFabricBinding(3),
        enableEnterpriseFabricMode(4),
        disableEnterpriseFabricMode(5),
        activateAllPendingFabricBinding(6),
        replaceAllPendingFabricBinding(7),
        clearAllPendingFabricBinding(8)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to issue a fabric command. 

        Enterprise Fabric Mode enabled will automatically enable fabric binding,
        insistent domain ID, switch binding all ports restrict, domain RSCN, 
        and rerouting delay.

        Enterprise Fabric Mode disabled will not automatically disable all the
        above features. Each one has to be disabled individually.

        Setting it to 'none' has no effect. When retrieved, the last 
        command issued will be returned."
    ::= { bbAccessControl 1 }

bbAccessControlFabricCommandStatus OBJECT-TYPE 
    SYNTAX INTEGER { 
        none(1),
        inProgress(2),
        succeeded(3),
        failed(4)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the fabric command status."
    ::= { bbAccessControl 2 }

bbAccessControlFabricBindingStatus OBJECT-TYPE 
    SYNTAX INTEGER {
        inactive(1),
        activeAllowing(2),
        activeRestricting(3)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This status of fabric binding."
    ::= { bbAccessControl 3 }

bbAccessControlEnterpriseFabricModeStatus OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This status of enterprise fabric mode status."
    ::= { bbAccessControl 4 }

bbAccessControlCommand OBJECT-TYPE 
    SYNTAX INTEGER {
        none(1), 
        switchBindingAddAllAttached(2), 
        switchBindingDeleteAll(3), 
        portBindingEnableAll(4), 
        portBindingDisableAll(5),
        portBindingAddAllAttached(6),
        portBindingDeleteAll(7),
        fabricBindingAddAllAttached(8),
        fabricBindingDeleteAll(9) 
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to issue an access control command.
        Setting it to 'none' has no effect, and when it is retrieved
        the value will always be 'none'."
    ::= { bbAccessControl 5 }

        -- ****************************************
        -- Switch Binding
        -- ****************************************

bbSwitchBindingState OBJECT-TYPE 
    SYNTAX INTEGER {
        disabled(1),
        fPortRestrict(2),
        ePortRestrict(3),
        allRestrict(4)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The switch binding State."
    ::= { bbAccessControl 6 }

bbSwitchBindingNumber OBJECT-TYPE 
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of entries in the switch binding table."
    ::= { bbAccessControl 7 }

bbSwitchBindingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbSwitchBindingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The switching binding table"
    ::= { bbAccessControl 8 }

bbSwitchBindingEntry OBJECT-TYPE 
    SYNTAX      BbSwitchBindingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the switch binding table"
    INDEX   { bbSwitchBindingWwn }
        ::= { bbSwitchBindingTable 1 }

BbSwitchBindingEntry ::= 
    SEQUENCE {
        bbSwitchBindingWwn          BbFcWWN, 
        bbSwitchBindingRowStatus    RowStatus
    } 

bbSwitchBindingWwn OBJECT-TYPE 
    SYNTAX      BbFcWWN
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The legitimate Fibre Channel switch names and N_PORT names
        that the particular switch partition is allowed to join within 
        a Fibre Channel switched fabric" 
    ::= { bbSwitchBindingEntry 2 }

bbSwitchBindingRowStatus OBJECT-TYPE 
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to create a new row or modify or delete 
        an existing row in this table. The pending list will be shown
        up as notInService, and is created using createAndWait."
    ::= { bbSwitchBindingEntry 3 }

        -- ****************************************
        -- Fabric Binding
        -- ****************************************

bbFabricBindingNumber OBJECT-TYPE 
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of entries in the fabric binding table."
    ::= { bbAccessControl 9 }

bbFabricBindingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFabricBindingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The fabric binding table"
    ::= { bbAccessControl 10 }

bbFabricBindingEntry OBJECT-TYPE 
    SYNTAX      BbFabricBindingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry fabric binding table. Note that for the index per buffer,
        the WWN and DomainId have to be unique. In other words, if WWN 1:2:3:4:5:6:7:8
        is already being used as index to an entry in the pending buffer,
        then no other entries in the pending buffer can have WWN index 
        1:2:3:4:5:6:7:8, even though the DomainId may be different."
    INDEX   { bbFabricBindingSource, bbFabricBindingDomainId, bbFabricBindingWwn }
        ::= { bbFabricBindingTable 1 }

BbFabricBindingEntry ::= 
    SEQUENCE {
        bbFabricBindingSource           INTEGER, 
        bbFabricBindingDomainId         BbDomainId, 
        bbFabricBindingWwn              BbFcWWN, 
        bbFabricBindingAttachStatus     INTEGER,
        bbFabricBindingRowStatus        BbRowStatusWithoutNotInService
    } 

bbFabricBindingSource OBJECT-TYPE
    SYNTAX INTEGER {
        active(1),
        pending(2)
    }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This source, whether it's from the active buffer or pending
        buffer, of this entry."
    ::= { bbFabricBindingEntry 1 }

bbFabricBindingDomainId OBJECT-TYPE 
    SYNTAX      BbDomainId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The domain ID."
    ::= { bbFabricBindingEntry 2 }

bbFabricBindingWwn OBJECT-TYPE 
    SYNTAX      BbFcWWN
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The world-wide name."
    ::= { bbFabricBindingEntry 3 }

bbFabricBindingAttachStatus OBJECT-TYPE
    SYNTAX INTEGER {
        attached(1),
        unattached(2),
        local(3)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The attach status of the switch with this fabric binding entry."
    ::= { bbFabricBindingEntry 4 }

bbFabricBindingRowStatus OBJECT-TYPE 
    SYNTAX      BbRowStatusWithoutNotInService
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to create a new row or modify or delete 
        an existing row in this table. Only the bbFabricBindingSource
        pending(2) buffer can be row created."
    ::= { bbFabricBindingEntry 5 }

        -- ****************************************
        -- Port Binding
        -- ****************************************

bbPortBindingNumber OBJECT-TYPE 
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of entries in the port binding table."
    ::= { bbAccessControl 11 }

bbPortBindingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbPortBindingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The port binding table"
    ::= { bbAccessControl 12 }

bbPortBindingEntry OBJECT-TYPE 
    SYNTAX      BbPortBindingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the port bind table"
    INDEX   { bbPortBindingPortIndex }
        ::= { bbPortBindingTable 1 }

BbPortBindingEntry ::= 
    SEQUENCE {
        bbPortBindingPortIndex      BbPortIndex, 
        bbPortBindingState          BbEnabledStatus, 
        bbPortBindingWwn            BbFcWWN
    }

bbPortBindingPortIndex OBJECT-TYPE 
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicates the port number to which this entry applies. 
        It equals the port number + 1."
    ::= { bbPortBindingEntry 1 }

bbPortBindingState OBJECT-TYPE 
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The state of this entry. If the state is enabled then only 
        ports with a port name matching bbPortBindingWwn will be allowed 
        to login."
    DEFVAL      { disabled   }
    ::= { bbPortBindingEntry 2 }

bbPortBindingWwn OBJECT-TYPE 
    SYNTAX      BbFcWWN
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A legitimate Fibre Channel port name (WWN) that the particular 
        port allows to login."
    ::= { bbPortBindingEntry 3 }

        -- ****************************************
        -- Access Control Device
        -- ****************************************

bbAccessControlDeviceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbAccessControlDeviceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table containing information of devices attached to ports."
    ::= { bbAccessControl 13 }

bbAccessControlDeviceEntry OBJECT-TYPE 
    SYNTAX      BbAccessControlDeviceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the attached device table."
    INDEX   { bbAccessControlDevicePortIndex }
        ::= { bbAccessControlDeviceTable 1 }

BbAccessControlDeviceEntry ::= 
    SEQUENCE {
        bbAccessControlDevicePortIndex      Integer32, 
        bbAccessControlDeviceWwn            BbFcWWN
    } 

bbAccessControlDevicePortIndex OBJECT-TYPE 
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The port number to which this entry applies."
    ::= { bbAccessControlDeviceEntry 1 }

bbAccessControlDeviceWwn OBJECT-TYPE 
    SYNTAX      BbFcWWN
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The WWN of the attached device."
    ::= { bbAccessControlDeviceEntry 2 }

        -- ****************************************
        -- VF specific Santegrity 1 Feature
        -- ****************************************

bbSantegrity1GlobalTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbSantegrity1GlobalEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for santegrity 1 commands for a specific virtual fabric."
    ::= { bbSantegrity1 1 }

bbSantegrity1GlobalEntry OBJECT-TYPE
    SYNTAX      BbSantegrity1GlobalEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the santegrity 1 global table, containing one
         row for each virtual fabric per partition."
    INDEX   { bbVfID }
    ::= { bbSantegrity1GlobalTable 1}

BbSantegrity1GlobalEntry ::=
    SEQUENCE {
        bbSantegrity1FabricCommand              INTEGER,
        bbSantegrity1FabricCommandStatus        INTEGER,
        bbSantegrity1FabricBindingStatus        INTEGER,
        bbSantegrity1EnterpriseFabricModeStatus BbEnabledStatus,
        bbSantegrity1BindingCommand             INTEGER,
        bbSantegrity1SwitchBindingState         INTEGER,
        bbSantegrity1SwitchBindingNumber        Integer32,
        bbSantegrity1FabricBindingNumber        Integer32,
        bbSantegrity1PortBindingNumber          Integer32
    }

bbSantegrity1FabricCommand OBJECT-TYPE 
    SYNTAX INTEGER {
        none(1),
        enableFabricBinding(2),
        disableFabricBinding(3),
        enableEnterpriseFabricMode(4),
        disableEnterpriseFabricMode(5),
        activateAllPendingFabricBinding(6),
        replaceAllPendingFabricBinding(7),
        clearAllPendingFabricBinding(8)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to issue a fabric command. 

        Enterprise Fabric Mode enabled will automatically enable fabric binding,
        insistent domain ID, switch binding all ports restrict, domain RSCN, 
        and rerouting delay.

        Enterprise Fabric Mode disabled will not automatically disable all the
        above features. Each one has to be disabled individually.

        Setting it to 'none' has no effect. When retrieved, the last 
        command issued will be returned."
    ::= { bbSantegrity1GlobalEntry 1 }

bbSantegrity1FabricCommandStatus OBJECT-TYPE 
    SYNTAX INTEGER { 
        none(1),
        inProgress(2),
        succeeded(3),
        failed(4)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the fabric command status."
    ::= { bbSantegrity1GlobalEntry 2 }

bbSantegrity1FabricBindingStatus OBJECT-TYPE 
    SYNTAX INTEGER {
        inactive(1),
        activeAllowing(2),
        activeRestricting(3)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This status of fabric binding."
    ::= { bbSantegrity1GlobalEntry 3 }

bbSantegrity1EnterpriseFabricModeStatus OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This status of enterprise fabric mode status."
    ::= { bbSantegrity1GlobalEntry 4 }

bbSantegrity1BindingCommand OBJECT-TYPE 
    SYNTAX INTEGER {
        none(1), 
        switchBindingAddAllAttached(2), 
        switchBindingDeleteAll(3), 
        portBindingEnableAll(4), 
        portBindingDisableAll(5),
        portBindingAddAllAttached(6),
        portBindingDeleteAll(7),
        fabricBindingAddAllAttached(8),
        fabricBindingDeleteAll(9) 
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to issue an access control command.
        Setting it to 'none' has no effect, and when it is retrieved
        the value will always be 'none'."
    ::= { bbSantegrity1GlobalEntry 5 }

bbSantegrity1SwitchBindingState OBJECT-TYPE 
    SYNTAX INTEGER {
        disabled(1),
        fPortRestrict(2),
        ePortRestrict(3),
        allRestrict(4)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The switch binding State."
    ::= { bbSantegrity1GlobalEntry 6 }

bbSantegrity1SwitchBindingNumber OBJECT-TYPE 
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of entries in the switch binding table per VF."
    ::= { bbSantegrity1GlobalEntry 7 }

bbSantegrity1FabricBindingNumber OBJECT-TYPE 
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of entries in the fabric binding table."
    ::= { bbSantegrity1GlobalEntry 8 }

bbSantegrity1PortBindingNumber OBJECT-TYPE 
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of entries in the port binding table."
    ::= { bbSantegrity1GlobalEntry 9 }


        -- ****************************************
        -- VF specific Switch Binding
        -- ****************************************

bbVfSwitchBindingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfSwitchBindingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The switching binding table per VF"
    ::= { bbSantegrity1 2 }

bbVfSwitchBindingEntry OBJECT-TYPE 
    SYNTAX      BbVfSwitchBindingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the switch binding table"
    INDEX   { bbVfID, bbVfSwitchBindingWwn }
        ::= { bbVfSwitchBindingTable 1 }

BbVfSwitchBindingEntry ::= 
    SEQUENCE {
        bbVfSwitchBindingWwn          BbFcWWN, 
        bbVfSwitchBindingRowStatus    RowStatus
    } 

bbVfSwitchBindingWwn OBJECT-TYPE 
    SYNTAX      BbFcWWN
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The legitimate Fibre Channel switch names and N_PORT names
        that the particular switch partition is allowed to join within 
        a Fibre Channel switched fabric" 
    ::= { bbVfSwitchBindingEntry 1 }

bbVfSwitchBindingRowStatus OBJECT-TYPE 
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to create a new row or modify or delete 
        an existing row in this table. The pending list will be shown
        up as notInService, and is created using createAndWait."
    ::= { bbVfSwitchBindingEntry 3 }


        -- ****************************************
        -- VF specific Fabric Binding
        -- ****************************************

bbVfFabricBindingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfFabricBindingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The fabric binding table"
    ::= { bbSantegrity1 3 }

bbVfFabricBindingEntry OBJECT-TYPE 
    SYNTAX      BbVfFabricBindingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry fabric binding table. Note that for the index per buffer,
        the WWN and DomainId have to be unique. In other words, if WWN 1:2:3:4:5:6:7:8
        is already being used as index to an entry in the pending buffer,
        then no other entries in the pending buffer can have WWN index 
        1:2:3:4:5:6:7:8, even though the DomainId may be different."
    INDEX   { bbVfID, bbVfFabricBindingSource, bbVfFabricBindingDomainId, bbVfFabricBindingWwn }
        ::= { bbVfFabricBindingTable 1 }

BbVfFabricBindingEntry ::= 
    SEQUENCE {
        bbVfFabricBindingSource         INTEGER, 
        bbVfFabricBindingDomainId       BbDomainId, 
        bbVfFabricBindingWwn            BbFcWWN, 
        bbVfFabricBindingAttachStatus   INTEGER,
        bbVfFabricBindingRowStatus      BbRowStatusWithoutNotInService
    } 

bbVfFabricBindingSource OBJECT-TYPE
    SYNTAX INTEGER {
        active(1),
        pending(2)
    }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This source, whether it's from the active buffer or pending
        buffer, of this entry."
    ::= { bbVfFabricBindingEntry 1 }

bbVfFabricBindingDomainId OBJECT-TYPE 
    SYNTAX      BbDomainId
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The domain ID."
    ::= { bbVfFabricBindingEntry 2 }

bbVfFabricBindingWwn OBJECT-TYPE 
    SYNTAX      BbFcWWN
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The world-wide name."
    ::= { bbVfFabricBindingEntry 3 }

bbVfFabricBindingAttachStatus OBJECT-TYPE
    SYNTAX INTEGER {
        attached(1),
        unattached(2),
        local(3)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The attach status of the switch with this fabric binding entry."
    ::= { bbVfFabricBindingEntry 4 }

bbVfFabricBindingRowStatus OBJECT-TYPE 
    SYNTAX      BbRowStatusWithoutNotInService
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to create a new row or modify or delete 
        an existing row in this table. Only the bbFabricBindingSource
        pending(2) buffer can be row created."
    ::= { bbVfFabricBindingEntry 5 }

        -- ****************************************
        -- VF specific Port Binding
        -- ****************************************

bbVfPortBindingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfPortBindingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The port binding table"
    ::= { bbSantegrity1 4 }

bbVfPortBindingEntry OBJECT-TYPE 
    SYNTAX      BbVfPortBindingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the port bind table"
    INDEX   { bbVfID, bbVfPortBindingPortIndex }
        ::= { bbVfPortBindingTable 1 }

BbVfPortBindingEntry ::= 
    SEQUENCE {
        bbVfPortBindingPortIndex      BbPortIndex, 
        bbVfPortBindingState          BbEnabledStatus, 
        bbVfPortBindingWwn            BbFcWWN
    }

bbVfPortBindingPortIndex OBJECT-TYPE 
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicates the port number to which this entry applies. 
        It equals the port number + 1."
    ::= { bbVfPortBindingEntry 1 }

bbVfPortBindingState OBJECT-TYPE 
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The state of this entry. If the state is enabled then only 
        ports with a port name matching bbVfPortBindingWwn will be allowed 
        to login."
    ::= { bbVfPortBindingEntry 2 }

bbVfPortBindingWwn OBJECT-TYPE 
    SYNTAX      BbFcWWN
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A legitimate Fibre Channel port name (WWN) that the particular 
        port allows to login."
    ::= { bbVfPortBindingEntry 3 }

        -- ****************************************
        -- Santegrity1 Device
        -- ****************************************

bbSantegrity1DeviceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbSantegrity1DeviceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table containing information of devices attached to ports."
    ::= { bbSantegrity1 5 }

bbSantegrity1DeviceEntry OBJECT-TYPE 
    SYNTAX      BbSantegrity1DeviceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the attached device table."
    INDEX   { bbSantegrity1DevicePortIndex }
        ::= { bbSantegrity1DeviceTable 1 }

BbSantegrity1DeviceEntry ::= 
    SEQUENCE {
        bbSantegrity1DevicePortIndex      Integer32, 
        bbSantegrity1DeviceWwn            BbFcWWN
    } 

bbSantegrity1DevicePortIndex OBJECT-TYPE 
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The port number to which this entry applies."
    ::= { bbSantegrity1DeviceEntry 1 }

bbSantegrity1DeviceWwn OBJECT-TYPE 
    SYNTAX      BbFcWWN
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The WWN of the attached device."
    ::= { bbSantegrity1DeviceEntry 2 }

------------------------------------------------------------------------
--
-- The Logs Group
--
------------------------------------------------------------------------

bbLogGeneral        OBJECT IDENTIFIER ::= { bbLogs 1 }
bbLogAudit          OBJECT IDENTIFIER ::= { bbLogs 2 }
bbLogEvent          OBJECT IDENTIFIER ::= { bbLogs 3 }
bbLogLinkIncident   OBJECT IDENTIFIER ::= { bbLogs 4 }
bbLogThresholdAlert OBJECT IDENTIFIER ::= { bbLogs 5 }
bbLogPort           OBJECT IDENTIFIER ::= { bbLogs 6 }
bbLogFabric         OBJECT IDENTIFIER ::= { bbLogs 7 }
bbLogTrap           OBJECT IDENTIFIER ::= { bbLogs 8 }
bbLogSecurity       OBJECT IDENTIFIER ::= { bbLogs 9 }
bbLogOpenTrunking   OBJECT IDENTIFIER ::= { bbLogs 10 }

        -- ****************************************
    -- The General Log Group
        -- ****************************************

bbLogClear OBJECT-TYPE 
    SYNTAX INTEGER {
        none(1), 
        audit(2),
        event(3),
        linkIncident(4),
        thresholdAlert(5),
        port(6),
        fabric(7),
        security(8),
        openTrunking(9)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Clears a specific log.  Setting it to 'none' has no effect, and when 
        it is retrieved the value will always be 'none'."
    ::= { bbLogGeneral 1 }

bbLogRemoteLogServer OBJECT-TYPE
    SYNTAX      IpAddress 
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The IP address of the remote log Server."
    ::= { bbLogGeneral 2 }

bbLogRemoteLogServerState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The state of the Remote log Server which is also known as syslog
        server. If enabled the entries are sent to the configured log server
        otherwise they are logged into a file and not sent the log the server."
    ::= { bbLogGeneral 3 }

    -- ****************************************
    -- The EventLog Group
    -- ****************************************

bbEventLogNumber OBJECT-TYPE
    SYNTAX              Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of entries currently in the log."
    ::= { bbLogEvent 1 }

bbEventLogLastSeqNum OBJECT-TYPE
    SYNTAX              Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sequence number of the last (most recent) entry in log."
    ::= { bbLogEvent 2 }

bbEventLogTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbEventLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "This table contains a list of the most recent events in the log."
    ::= { bbLogEvent 3 }

bbEventLogEntry OBJECT-TYPE
    SYNTAX      BbEventLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "An entry in the event log table." 
    INDEX { bbEventLogSeqNum }
    ::= { bbEventLogTable 1 }

BbEventLogEntry ::=
    SEQUENCE {
        bbEventLogSeqNum        Unsigned32,
        bbEventLogTime          BbDateAndTime,
        bbEventLogType          INTEGER,
        bbEventLogCode          Integer32,
        bbEventLogDescription   SnmpAdminString,
        bbEventLogSeverity      BbEventSeverity,
        bbEventLogFruCode       BbFruCode,
        bbEventLogFruPosition   Integer32,
        bbEventLogData          OCTET STRING,
        bbEventLogDistribution  BITS,
        bbEventLogVfId          BbVfID
    }

bbEventLogSeqNum OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The sequence ID of this entry in the eventlog table."
    ::= { bbEventLogEntry 1 }

bbEventLogTime OBJECT-TYPE
    SYNTAX      BbDateAndTime
    MAX-ACCESS  read-only  
    STATUS      current
    DESCRIPTION 
        "The date and time of this event."
    ::= { bbEventLogEntry 2 }

bbEventLogType OBJECT-TYPE
    SYNTAX INTEGER {
        linkIncident(1),
        hardware(2),
        software(3),
        portIncident(4), 
        invAttachmentIncident(5),
        infoIncident(6)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The type for this event."
    ::= { bbEventLogEntry 3 }

bbEventLogCode OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
                "The unique code that identifies this event."
    ::= { bbEventLogEntry 4 }

bbEventLogDescription OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The short description of this event."
    ::= { bbEventLogEntry 5 }

bbEventLogSeverity OBJECT-TYPE
    SYNTAX      BbEventSeverity
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The severity of this event."
    ::= { bbEventLogEntry 6 }

bbEventLogFruCode OBJECT-TYPE
    SYNTAX      BbFruCode
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The FRU code for this event."
    ::= { bbEventLogEntry 7 }

bbEventLogFruPosition OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The FRU position of this FRU relative to its type.  The value
        is always one more than the physical FRU position."
    ::= { bbEventLogEntry 8 }

bbEventLogData OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..32))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Supplementary information for this event."
    ::= { bbEventLogEntry 9 }

bbEventLogDistribution OBJECT-TYPE
    SYNTAX      BITS {
                        console(0),
                        frontPanel(1),
                        systemErrorLight(2),
                        fruErrorLog(3),
                        snmpManager(4),
                        fibreChannelHost(5),
                        email(6),
                        callhome(7),
                        cliBroadcast(8),
                        log(9),
                        webserver(10)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Specifies the destination for the incident event."
    ::= { bbEventLogEntry 10 }

bbEventLogVfId OBJECT-TYPE
    SYNTAX      BbVfID
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The virtual fabric ID."
    ::= { bbEventLogEntry 11 }

    -- ****************************************
    -- The Audit Log Group
    -- ****************************************

bbAuditLogNumber OBJECT-TYPE
    SYNTAX              Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of entries currently in the log."
    ::= { bbLogAudit 1 }

bbAuditLogLastSeqNum OBJECT-TYPE
    SYNTAX              Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                "The sequence number of the last (most recent) entry the log."
    ::= { bbLogAudit 2 }

bbAuditLogTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbAuditLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "This table contains a list of the most recent audit events."
    ::= { bbLogAudit 3 }

bbAuditLogEntry OBJECT-TYPE
    SYNTAX      BbAuditLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "An entry in the audit log table." 
    INDEX { bbAuditLogSeqNum }
    ::= { bbAuditLogTable 1 }

BbAuditLogEntry ::=
    SEQUENCE {
        bbAuditLogSeqNum        Unsigned32,
        bbAuditLogTime          BbDateAndTime,
        bbAuditLogActionText    SnmpAdminString,
        bbAuditLogSource        INTEGER,
        bbAuditLogIdentifier    SnmpAdminString,
        bbAuditLogAttrChange    SnmpAdminString
    }

bbAuditLogSeqNum OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The sequence number of this entry in the audit log table."
    ::= { bbAuditLogEntry 1 }

bbAuditLogTime OBJECT-TYPE
    SYNTAX      BbDateAndTime
    MAX-ACCESS  read-only  
    STATUS      current
    DESCRIPTION 
        "This object specifies the calendar date and time that the 
         audit event occurred."
    ::= { bbAuditLogEntry 2 }

bbAuditLogActionText OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The text description of the user action that caused the 
        configuration change."
    ::= { bbAuditLogEntry 3 }

bbAuditLogSource OBJECT-TYPE
    SYNTAX INTEGER {
        mntPort(1),
        efcm(2),
        snmp(3),
        fabric(4),
        webServer(5),
        fcHost(6),
        telnet(7),
        xml(8),
        internal(9),
                ssh(10)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The object indicates where the changes was made from."
    ::= { bbAuditLogEntry 4 }

bbAuditLogIdentifier OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the user making the change."
    ::= { bbAuditLogEntry 5 }

bbAuditLogAttrChange OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The attribute changed in text. The format is:
            object.instance=value
        "
    ::= { bbAuditLogEntry 6 }


    -- ****************************************
    -- The Link Incident Log Group
    -- ****************************************

bbLinkIncidentLogNumber OBJECT-TYPE
    SYNTAX              Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of entries currently in the log."
    ::= { bbLogLinkIncident 1 }

bbLinkIncidentLogLastSeqNum OBJECT-TYPE
    SYNTAX              Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sequence number of the last (most recent) entry in auditlog."
    ::= { bbLogLinkIncident 2 }

bbLinkIncidentLogTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbLinkIncidentLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "This table contains a list of the most recent audit events."
    ::= { bbLogLinkIncident 3 }

bbLinkIncidentLogEntry OBJECT-TYPE
    SYNTAX      BbLinkIncidentLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "An entry in the audit log table." 
    INDEX { bbLinkIncidentLogSeqNum }
    ::= { bbLinkIncidentLogTable 1 }

BbLinkIncidentLogEntry ::=
    SEQUENCE {
        bbLinkIncidentLogSeqNum        Unsigned32,
        bbLinkIncidentLogTime          BbDateAndTime,
        bbLinkIncidentLogPort          Integer32,
        bbLinkIncidentLogCode          Integer32,
        bbLinkIncidentLogData          OCTET STRING     
    }

bbLinkIncidentLogSeqNum OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The sequence number of this entry in the link incident log table."
    ::= { bbLinkIncidentLogEntry 1 }

bbLinkIncidentLogTime OBJECT-TYPE
    SYNTAX      BbDateAndTime
    MAX-ACCESS  read-only  
    STATUS      current
    DESCRIPTION 
        "The calendar date and time that the link incident event occurred."
    ::= { bbLinkIncidentLogEntry 2 }

bbLinkIncidentLogPort OBJECT-TYPE
    SYNTAX      Integer32(0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of the port on which the incident occurred."
    ::= { bbLinkIncidentLogEntry 3 }

bbLinkIncidentLogCode OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A unique code that identify the event."
    ::= { bbLinkIncidentLogEntry 4 }

bbLinkIncidentLogData OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE(0..32))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Supplementary information for this event."
    ::= { bbLinkIncidentLogEntry 5 }


    -- ****************************************
    --  Threshold Alert Log Group
    -- ****************************************

bbThresholdAlertLogNumber OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of entries currently in the log file."
    ::= { bbLogThresholdAlert 1 }

bbThresholdAlertLogLastSeqNum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The sequence number of the last (most recent) entry in the 
         threshold alert log."
    ::= { bbLogThresholdAlert 2 }

bbThresholdAlertLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BbThresholdAlertLogEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This table contains a list of the most recent threshold alert log entries."
    ::= { bbLogThresholdAlert 3 }

bbThresholdAlertLogEntry OBJECT-TYPE
    SYNTAX     BbThresholdAlertLogEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry in the threshold alert log table."
    INDEX { bbThresholdAlertLogSeqNum }
    ::= { bbThresholdAlertLogTable 1 }

BbThresholdAlertLogEntry ::=
    SEQUENCE {
        bbThresholdAlertLogSeqNum               Unsigned32,
        bbThresholdAlertLogTime                 BbDateAndTime,
        bbThresholdAlertLogName                 DisplayString,
        bbThresholdAlertLogScope                INTEGER,
        bbThresholdAlertLogType                 INTEGER,
        bbThresholdAlertLogObjectInstance       BbObjectInstance,
        bbThresholdAlertLogInterval             Integer32,
        bbThresholdAlertLogDuration             Integer32,
        bbThresholdAlertLogThroughputDirection  INTEGER,
        bbThresholdAlertLogUtilization          Integer32,
        bbThresholdAlertLogCounterId            BbThresholdAlertCounterId,
        bbThresholdAlertLogCounterDelta         CounterBasedGauge64,
        bbThresholdAlertLogIndex                Integer32
    }

bbThresholdAlertLogSeqNum OBJECT-TYPE
    SYNTAX     Unsigned32 (1..4294967295)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The sequence number of this entry in the threshold alert log table."
    ::= { bbThresholdAlertLogEntry 1 }

bbThresholdAlertLogTime OBJECT-TYPE
    SYNTAX     BbDateAndTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Timestamp for this entry in the log table."
    ::= { bbThresholdAlertLogEntry 2 }

bbThresholdAlertLogName                 OBJECT-TYPE
    SYNTAX    DisplayString(SIZE(1..64))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The configured threshold alert name."
    ::= { bbThresholdAlertLogEntry 3 }

bbThresholdAlertLogScope                OBJECT-TYPE
    SYNTAX     INTEGER {
        portList(1),
        ePorts(2),
        fPorts(3),
        paddlePairList(4),
        lmq(5)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The configured threshold alert scope."
    ::= { bbThresholdAlertLogEntry 4 }

bbThresholdAlertLogType                 OBJECT-TYPE
    SYNTAX  INTEGER{
        counter (1),
        throughput(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The threshold alert type."
    ::= { bbThresholdAlertLogEntry 5 }

bbThresholdAlertLogObjectInstance       OBJECT-TYPE
    SYNTAX      BbObjectInstance
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "This object indicates which object triggered the threshold alert.
          For a port threshold alert, this object specifies the port 
          number (0-255). For a paddle-pair threshold alert, this object
          specifies the paddle-pair number(0-15)."  
    ::= { bbThresholdAlertLogEntry 6 }

bbThresholdAlertLogInterval             OBJECT-TYPE
    SYNTAX      Integer32(1..70560)
    UNITS       "minutes"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This only applies when the alert type is throughput.
         It specifies at what rate the embedded software will continue
         generating alerts as the threshold condition persists."
    ::= { bbThresholdAlertLogEntry 7 }

bbThresholdAlertLogDuration             OBJECT-TYPE
    SYNTAX     Integer32
    UNITS       "minutes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This only applies when the alert type is throughput.
         It specifies the amount of time that the trigger exceeded 
         before an alert is generated."
    ::= { bbThresholdAlertLogEntry 8 }

bbThresholdAlertLogThroughputDirection  OBJECT-TYPE
    SYNTAX  INTEGER {
        none (1),
        transmit (2),
        receive (3),
        both(4)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This only applies when the alert type is throughput.
         It specifies the throughput direction of the threshold alert."
    ::= { bbThresholdAlertLogEntry 9 }

bbThresholdAlertLogUtilization          OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "percentage"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This only applies when the threshold alert type is throughput.
         This is the utilization that triggers the alert."
    ::= { bbThresholdAlertLogEntry 10 }

bbThresholdAlertLogCounterId            OBJECT-TYPE
    SYNTAX     BbThresholdAlertCounterId
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This object only applies to counter threshold alert. It specifies 
         which counter triggered the alert."
    ::= { bbThresholdAlertLogEntry 11 }

bbThresholdAlertLogCounterDelta         OBJECT-TYPE
    SYNTAX     CounterBasedGauge64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This object only applies to counter threshold alert. It specifies 
         the delta value of the counter that triggered the alert."
    ::= { bbThresholdAlertLogEntry 12 }

bbThresholdAlertLogIndex  OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "This object indicates which theshold alert is triggered."
    ::= { bbThresholdAlertLogEntry 13 }

    -- ****************************************
    -- The Port Log Group
    -- ****************************************

bbPortLogFile OBJECT-TYPE
    SYNTAX INTEGER {
        wrapping(1),
        nonWrapping(2),
        both(3)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The wrapping or non-wrapping file of the port log. This
        object can be used by bbLogClear operation."
    ::= { bbLogPort 1 }

bbPortLogNumber OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of entries currently in the log file."
    ::= { bbLogPort 2 }

bbPortLogLastSeqNum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The sequence number of the last (most recent) entry in port log."
    ::= { bbLogPort 3 }

bbPortLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BbPortLogEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This table contains a list of the most recent port log entries."
    ::= { bbLogPort 4 }

bbPortLogEntry OBJECT-TYPE
    SYNTAX     BbPortLogEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry in the port log table."
    INDEX { bbPortLogSeqNum }
    ::= { bbPortLogTable 1 }

BbPortLogEntry ::=
    SEQUENCE {
        bbPortLogSeqNum         Unsigned32,
        bbPortLogCounter        Counter32,
        bbPortLogTime           BbDateAndTime,
        bbPortLogFrameDirection INTEGER,
        bbPortLogPort           Integer32,
        bbPortLogSOF            OCTET STRING,
        bbPortLogEOF            OCTET STRING,
        bbPortLogFCHeader       OCTET STRING,
        bbPortLogPayLoadLen     Unsigned32,
        bbPortLogPayLoad        OCTET STRING,
        bbPortLogVfId           Integer32
    }

bbPortLogSeqNum OBJECT-TYPE
    SYNTAX     Unsigned32 (1..4294967295)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The sequence number of this entry in the port log table."
    ::= { bbPortLogEntry 1 }

bbPortLogCounter OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The non-wrapping counter."
    ::= { bbPortLogEntry 2 }

bbPortLogTime OBJECT-TYPE
    SYNTAX     BbDateAndTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Timestamp for this entry in the log table."
    ::= { bbPortLogEntry 3 }

bbPortLogFrameDirection OBJECT-TYPE
    SYNTAX INTEGER {
        in(1),
        out(2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The frame direction (in or out of the port)."
    ::= { bbPortLogEntry 4 }

bbPortLogPort OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "port number that this log entry is for."
    ::= { bbPortLogEntry 5 }

bbPortLogSOF OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE(1..4))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Start of the frame."
    ::= { bbPortLogEntry 6 }

bbPortLogEOF OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE(1..4))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "End of the frame."
    ::= { bbPortLogEntry 7 }

bbPortLogFCHeader  OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE(1..54))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Fibre channel header."
    ::= { bbPortLogEntry 8 }

bbPortLogPayLoadLen OBJECT-TYPE
    SYNTAX     Unsigned32(1..4294967295)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The payload length."
    ::= { bbPortLogEntry 9 }

bbPortLogPayLoad  OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE(1..72))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Payload of the log."
    ::= { bbPortLogEntry 10 }

bbPortLogVfId OBJECT-TYPE
    SYNTAX      BbVfID
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The virtual fabric ID."
    ::= { bbPortLogEntry 11 }

    -- ****************************************
    -- The Fabric Log Group
    -- ****************************************

bbFabricLogFile OBJECT-TYPE
    SYNTAX INTEGER {
        wrapping(1),
        nonWrapping(2),
        both(3)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The wrapping or non-wrapping file of the fabric log. This
        object can be used by bbLogClear operation."
    ::= { bbLogFabric 1 }

bbFabricLogNumber OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of entries currently in the fabric log file."
    ::= { bbLogFabric 2 }

bbFabricLogLastSeqNum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The sequence number of the last (most recent) entry in fabric log."
    ::= { bbLogFabric 3 }


bbVfFabricLogGlobalTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfFabricLogGlobalEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about fabric log global information 
        at Virtual Switch."
    ::= { bbLogFabric 4 }

bbVfFabricLogGlobalEntry OBJECT-TYPE
    SYNTAX      BbVfFabricLogGlobalEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A list of attributes of fabric log global information 
         at Virtual Switch."
    INDEX   { bbVfID }
    ::= { bbVfFabricLogGlobalTable 1}

BbVfFabricLogGlobalEntry ::=
    SEQUENCE {
        bbVfFabricLogFile         INTEGER,
        bbVfFabricLogNumber       Integer32,
        bbVfFabricLogLastSeqNum   Unsigned32
    }

bbVfFabricLogFile OBJECT-TYPE
    SYNTAX INTEGER {
        wrapping(1),
        nonWrapping(2),
        both(3)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The wrapping or non-wrapping file of the fabric log. This
        object can be used by bbLogClear operation."
    ::= { bbVfFabricLogGlobalEntry 1 }

bbVfFabricLogNumber OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of entries currently in the fabric log file."
    ::= { bbVfFabricLogGlobalEntry 2 }

bbVfFabricLogLastSeqNum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The sequence number of the last (most recent) entry in fabric log."
    ::= { bbVfFabricLogGlobalEntry 3 }

bbFabricLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BbFabricLogEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This table contains a list of the most recent fabric log entries."
    ::= { bbLogFabric 5 }

bbFabricLogEntry OBJECT-TYPE
    SYNTAX     BbFabricLogEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry in the fabric log table."
    INDEX { bbVfID, bbFabricLogSeqNum }
    ::= { bbFabricLogTable 1 }

BbFabricLogEntry ::=
    SEQUENCE {
        bbFabricLogSeqNum           Unsigned32,
        bbFabricLogCounter          Counter32,
        bbFabricLogIdDescription    DisplayString,
        bbFabricLogTime             BbDateAndTime,
        bbFabricLogCtrlFlags        OCTET STRING,
        bbFabricLogPortBitmap       OCTET STRING,
        bbFabricLogData             OCTET STRING
    }

bbFabricLogSeqNum OBJECT-TYPE
    SYNTAX     Unsigned32 (1..4294967295)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The sequence number of this entry in the fabric log table."
    ::= { bbFabricLogEntry 1 }

bbFabricLogCounter OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The non-wrapping counter."
    ::= { bbFabricLogEntry 2 }

bbFabricLogIdDescription OBJECT-TYPE
    SYNTAX     DisplayString (SIZE(51))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Log entry identifier message."
    ::= { bbFabricLogEntry 3 }

bbFabricLogTime OBJECT-TYPE
    SYNTAX     BbDateAndTime
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Timestamp for this entry in the fabric log table."
    ::= { bbFabricLogEntry 4 }

bbFabricLogCtrlFlags OBJECT-TYPE
    SYNTAX OCTET STRING (SIZE(4))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The log control flag)."
    ::= { bbFabricLogEntry 5 }

bbFabricLogPortBitmap OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE(32))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Bit map for each port."
    ::= { bbFabricLogEntry 6 }

bbFabricLogData OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE(1..73))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Formatted data output."
    ::= { bbFabricLogEntry 7 }

    -- ****************************************
    -- The Open Trunking Log Group
    -- ****************************************
bbTrapLogSeqNum OBJECT-TYPE
    SYNTAX              Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                "The sequence number of the most recent entry in the trap log."
    ::= { bbLogTrap 1 }

    -- ****************************************
    -- The Security Log Group
    -- ****************************************

bbSecurityLogNumber OBJECT-TYPE
    SYNTAX              Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of entries currently in the log."
    ::= { bbLogSecurity 1 }

bbSecurityLogLastSeqNum OBJECT-TYPE
    SYNTAX              Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sequence number of the last (most recent) entry in log."
    ::= { bbLogSecurity 2 }

bbSecurityLogTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbSecurityLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "This table contains a list of the most recent security entries in the log."
    ::= { bbLogSecurity 3 }

bbSecurityLogEntry OBJECT-TYPE
    SYNTAX      BbSecurityLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "An entry in the Security log table." 
    INDEX { bbSecurityLogSeqNum }
    ::= { bbSecurityLogTable 1 }

BbSecurityLogEntry ::=
    SEQUENCE {
        bbSecurityLogSeqNum             Unsigned32,
        bbSecurityLogTime               BbDateAndTime,
        bbSecurityLogReasonCode         Integer32,
        bbSecurityLogMessage            SnmpAdminString,
        bbSecurityLogCategory           BbSecurityCategory,
        bbSecurityLogTriggerLevel       BbSecurityTriggerLevel,
        bbSecurityLogCumaltiveCount     Integer32,
        bbSecurityLogExtededData        OCTET STRING,
        bbSecurityLogVfId               BbVfID
    }

bbSecurityLogSeqNum OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The sequence ID of this entry in the securitylog table."
    ::= { bbSecurityLogEntry 1 }

bbSecurityLogTime OBJECT-TYPE
    SYNTAX      BbDateAndTime
    MAX-ACCESS  read-only  
    STATUS      current
    DESCRIPTION 
        "The date and time."
    ::= { bbSecurityLogEntry 2 }

bbSecurityLogReasonCode OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
                "The unique reason code."
    ::= { bbSecurityLogEntry 3 }

bbSecurityLogMessage OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The reason code message text."
    ::= { bbSecurityLogEntry 4 }

bbSecurityLogCategory OBJECT-TYPE
    SYNTAX      BbSecurityCategory
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The category based on the reason code."
    ::= { bbSecurityLogEntry 5 }

bbSecurityLogTriggerLevel OBJECT-TYPE
    SYNTAX      BbSecurityTriggerLevel
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Trigger level assocaited with the reason code."
    ::= { bbSecurityLogEntry 6 }

bbSecurityLogCumaltiveCount OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The cumlative count set by the creator of this entry."
    ::= { bbSecurityLogEntry 7 }

bbSecurityLogExtededData OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (0..256))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The extended Data associated with this entry."
    ::= { bbSecurityLogEntry 8 }

bbSecurityLogVfId OBJECT-TYPE
    SYNTAX      BbVfID
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The virtual fabric ID."
    ::= { bbSecurityLogEntry 9 }

    -- ****************************************
    -- The Open Trunking Log Group
    -- ****************************************

bbOpenTrunkingLogNumber OBJECT-TYPE
    SYNTAX              Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of entries currently in the log."
    ::= { bbLogOpenTrunking 1 }

bbOpenTrunkingLogLastSeqNum OBJECT-TYPE
    SYNTAX              Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The sequence number of the last (most recent) entry in open trunking."
    ::= { bbLogOpenTrunking 2 }

bbOpenTrunkingLogTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbOpenTrunkingLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "This table contains a list of the most recent open trunking events."
    ::= { bbLogOpenTrunking 3 }

bbOpenTrunkingLogEntry OBJECT-TYPE
    SYNTAX      BbOpenTrunkingLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "An entry in the open trunking log table." 
    INDEX { bbOpenTrunkingLogSeqNum }
    ::= { bbOpenTrunkingLogTable 1 }


BbOpenTrunkingLogEntry ::=
    SEQUENCE {
        bbOpenTrunkingLogSeqNum         Unsigned32,
        bbOpenTrunkingLogTime           BbDateAndTime,
        bbOpenTrunkingLogRecvPort       Integer32,
        bbOpenTrunkingLogOldExitPort    Integer32,
        bbOpenTrunkingVfId              Integer32,
        bbOpenTrunkingLogTargetMask     Unsigned32,
        bbOpenTrunkingLogTargetPortNpid Unsigned32,
        bbOpenTrunkingLogNewExitPort    Integer32
    }

bbOpenTrunkingLogSeqNum OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The sequence number of this entry in the open trunking log table."
    ::= { bbOpenTrunkingLogEntry 1 }

bbOpenTrunkingLogTime OBJECT-TYPE
    SYNTAX      BbDateAndTime
    MAX-ACCESS  read-only  
    STATUS      current
    DESCRIPTION 
        "The calendar date and time that the open trunking event occurred."
    ::= { bbOpenTrunkingLogEntry 2 }

bbOpenTrunkingLogRecvPort OBJECT-TYPE
    SYNTAX      Integer32(0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The receive port number on the local switch associated with the flow
        that was rerouted."
    ::= { bbOpenTrunkingLogEntry 3 }

bbOpenTrunkingLogOldExitPort OBJECT-TYPE
    SYNTAX      Integer32(0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The exit port number on this switch that the flow used to use to get to
        the target domain." 
    ::= { bbOpenTrunkingLogEntry 4 }

bbOpenTrunkingVfId OBJECT-TYPE
    SYNTAX      BbVfID
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The virtual fabric ID on this switch that the flow used to use to
         get to the target domain."
    ::= { bbOpenTrunkingLogEntry 5 }

bbOpenTrunkingLogTargetMask OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specfies which bytes in the bbOpenTrunkingLogTargetPortNpid 
        is valid.  Only 3 bytes is used and upper byte is not used.  16 bit 
        routing uses a mask of 0xffff00 & 24 bit routing is used in future 
        LIM's and has a mask of 0xffffff."
    ::= { bbOpenTrunkingLogEntry 6 }

bbOpenTrunkingLogTargetPortNpid OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Contains target domain, area and Port information of the flow that was rerouted.  This object should be used along with bbOpenTrunkingLogTargetMask
        object to determine the valid values.  Only 3 bytes is used & upper
        byte is not used."
    ::= { bbOpenTrunkingLogEntry 7 }

bbOpenTrunkingLogNewExitPort OBJECT-TYPE
    SYNTAX      Integer32(0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The exit port number on this switch that the flow now uses to get to
        the target domain." 
    ::= { bbOpenTrunkingLogEntry 8 }


------------------------------------------------------------------------
--
-- Objects for notification only
--
------------------------------------------------------------------------

bbTemperatureEvent OBJECT-TYPE
    SYNTAX INTEGER {
        tempHazard(1),
        tempWarning(2)
    }       
    MAX-ACCESS  accessible-for-notify 
    STATUS      current
    DESCRIPTION 
        "A board temperature event."
    ::= { bbNotifyInfo 1 }

------------------------------------------------------------------------
--
-- The Product Feature Enablement (PFE) Group
--
------------------------------------------------------------------------

bbPfeInstallLicenseKey OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to install a license key to the system. 
        A GET on this object returns a zero length string."
    ::= { bbPfe 1 }

bbPfeTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbPfeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of PFE data."
    ::= { bbPfe 2 }

bbPfeEntry OBJECT-TYPE
    SYNTAX      BbPfeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the PFE table."
    INDEX   { bbPfeInstalledFeatureIndex }
    ::= { bbPfeTable 1}

BbPfeEntry ::=
    SEQUENCE {
        bbPfeInstalledFeatureIndex      INTEGER,
        bbPfeNumberInstances            Integer32,
        bbPfeIsTrialFeature             TruthValue,
        bbPfeTrialFeatureExpirationTime Unsigned32
    }

bbPfeInstalledFeatureIndex OBJECT-TYPE
    SYNTAX INTEGER {
        remoteFabric(1),
        santegrityBinding(2),
        fms(3),
        ndp(4),
        elementManager(5),
        santegrityAuthentication(6),
        openTrunking(7)
    }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The installed PFE feature."
    ::= { bbPfeEntry 1 }

bbPfeNumberInstances OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "For instance based features, this object indicates the number of
        instances allowed for the feature. Currently only nDP is using it.
        All non-instance based features returns 0 upon a GET."
    ::= { bbPfeEntry 2 }

bbPfeIsTrialFeature OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates whether this is trial feature or not."
    ::= { bbPfeEntry 3 }

bbPfeTrialFeatureExpirationTime OBJECT-TYPE
    SYNTAX      Unsigned32
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates expiration time (in seconds) of trial
         period if this is trial feature. Otherwise, ignore this value."
    ::= { bbPfeEntry 4 }


------------------------------------------------------------------------
--
-- The Save/Restore Configuration  Group
--
------------------------------------------------------------------------

bbSaveRestoreOperation OBJECT-TYPE
    SYNTAX INTEGER { 
        none(1),
        save(2),
        restore(3),
            restoreDefaultConfig(4)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to issue a save/restore operation to
        the switch. Any SET request to this object requires the 
        bbSaveRestoreStatus to be not in the inProgress(2) state. 
        A GET returns the last SET operation, and none(1) is returned 
        if no previous operation has been performed. Setting the value 
        of this object to none(1) will result in error."
    ::= { bbSaveRestore 1 }

bbSaveRestoreConfigurationType OBJECT-TYPE
    SYNTAX INTEGER { 
        none(1),
        switch(2),

        -- The following options are obsoleted 
        -- fibreChannelZoning(3),
        -- fibreChannelSubSystem(4),
        -- ndp(5),
        -- snmp(6),
        -- santegrity(7),

        partition(8)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates the corresponding configuration to be 
        saved/restored. Any SET request to this object requires the 
        bbSaveRestoreStatus to be not in the inProgress(2) state. 
        A GET returns the last SET operation, and none(1) is returned 
        if no previous operation has been performed.  Setting the value 
        of this object to none(1) will result in error."
    ::= { bbSaveRestore 2}

bbSaveRestoreStatus OBJECT-TYPE
    SYNTAX INTEGER { 
        none(1),
        inProgress(2),
        succeeded(3),
        failed(4),
        parseError(5),
        fileTransferError(6)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the status of the save/restore operation."
    ::= { bbSaveRestore 3}

------------------------------------------------------------------------
--
-- IP ACL Group
--
-----------------------------------------------------------------------

bbAclState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The state of the IP ACL feature."
    ::= { bbIpAcl 1 }

bbAclTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbAclEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for access control list of IP hosts. At most 10 entries 
        are allowed."
    ::= { bbIpAcl 2 }

bbAclEntry OBJECT-TYPE
    SYNTAX      BbAclEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the IP acl table."
    INDEX { bbAclIpAddress }
    ::= { bbAclTable 1}

BbAclEntry ::=
    SEQUENCE {
        bbAclIpAddress      IpAddress, 
        bbAclRowStatus      BbRowStatusWithoutNotInService
    }

bbAclIpAddress OBJECT-TYPE
    SYNTAX      IpAddress 
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The IP address of the host that is allowed to access the switch."
    ::= { bbAclEntry 1 }

bbAclRowStatus OBJECT-TYPE
    SYNTAX      BbRowStatusWithoutNotInService
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to create a new row or modify/delete 
        an existing row in this table."
    ::= { bbAclEntry 2 }

bbTelnetState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The state of cli access via telnet session.  It is either 
        enabled or disabled.  By default it is enabled."
    DEFVAL      { enabled }
    ::= { bbIpAcl 3 }

------------------------------------------------------------------------
--
-- Software Inventory / Upgrade Group
--
------------------------------------------------------------------------

bbSwInventoryTransferCommand OBJECT-TYPE
    SYNTAX INTEGER { 
        none(1),
        txImage(2)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to issue the command to activate transfer
        of a software image (both master and services packages) to the active.  
        Any SET request to this object requires the bbSwInventoryTransferStatus 
        to be not in the inProgress(2) state.  A GET returns the last SET 
        operation, and none(1) is returned if no previous operation has been 
        performed. Setting the value of this object to none(1) will result 
        in error. The status of this command is shown in object bbFtpStatus."
    ::= { bbSwInventory 1 }

bbSwInventoryUpgradeCommand OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),

        -- System Upgrade Options
        swUpgradeActive(2),
        swUpgradeStandby(3),
        swUpgradeActiveClean(4),
        swUpgradeStandbyClean(5),
        swUpgradeSingleSequence(6),
        swUpgradeDualSequence(7),

        -- Service Upgrade Options
        svcUpgradeActive(10),
        svcUpgradeStandby(11),
        svcUpgradeBoth(12),
        installSvcActive(13),
        installSvcStandby(14),
        installSvcBoth(15)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to issue a software upgrade/install command.

        Command                 Description
        ----------------------  ---------------------------------------
        swUpgradeActive         Upgrades the software on the active CTP.
        swUpgradeStandby        Upgrades the software on the standby CTP.
        swUpgradeActiveClean    Performs a clean on the CTP and then 
                                upgrades the software on the active CTP.
        swUpgradeStandbyClean   Performs a clean on the CTP and then
                                upgrades the software on the standby CTP.
        swUpgradeSequenced      Performs an upgrade on installed CTPs,
                                and switchover.

        svcUpgradeActive        Upgrades services package on the active CTP.
        svcUpgradeStandby       Upgrades services package on the standby CTP.
        svcUpgradeBoth          Upgrades services package on both CTPs.

        installSvcActive        Installs the services package on the active CTP.
        installSvcStandby       Installs the services package on the standby CTP.
        installSvcBoth          Installs the services package both CTPs

        The object bbSwInventoryStatus shows the status of the upgrade
        command.  A SET requires that the object bbSwInventoryStatus 
        not be in the 'inProgress' state.

        Setting it to 'none' has no effect, and when it is retrieved
        the value will always be 'none'."
    ::= { bbSwInventory 2 }

bbSwInventoryUpgradeStatus OBJECT-TYPE
    SYNTAX INTEGER { 
        none(1),
        inProgress(2),
        succeeded(3),
        failed(4),
        inProgressStandbyImageInstall(5),
        inProgressStandbyRestart(6),
        inProgressActiveImageInstall(7),
        inProgressLim0ImageInstall(8),
        inProgressLim1ImageInstall(9),
        inProgressLim2ImageInstall(10),
        inProgressLim3ImageInstall(11),
        inProgressLim4ImageInstall(12),
        inProgressLim5ImageInstall(13),
        inProgressLim6ImageInstall(14),
        inProgressLim7ImageInstall(15),
        inProgressLim0Upgrade(16),
        inProgressLim1Upgrade(17),
        inProgressLim2Upgrade(18),
        inProgressLim3Upgrade(19),
        inProgressLim4Upgrade(20),
        inProgressLim5Upgrade(21),
        inProgressLim6Upgrade(22),
        inProgressLim7Upgrade(23),
        inProgressActiveUpgrade(24 ), 
        inProgressSwitchover(25),
        inProgressOldActiveRestart(26)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "This object indicates software inventory command operation status.
         For any error encountered in the process of upgrade, this object
         will return failed(4) value.  The bbSwInventoryUpgradeStatusDescription
         object will return the actual string desciption of the error encounterd."
    ::= { bbSwInventory 3 }

bbSwInventoryUpgradeSvcType OBJECT-TYPE
    SYNTAX INTEGER { 
        none(1),
        normal(2),
        clean(3)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The type of upgrade for the services package."
    ::= { bbSwInventory 4 }

bbSwInventoryUpgradeSvcVersion OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(1..24))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The services package version to upgrade to."
    ::= { bbSwInventory 5 }

bbSwInventoryActiveNextBootImage OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),
        current(2),
        backup(3)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to set the image for the next boot on
        the active CTP."
    ::= { bbSwInventory 6 }

bbSwInventoryStandbyNextBootImage OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),
        current(2),
        backup(3)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to set the image for the next boot on
        the standby CTP. Setting to none(1) results in error. If
        the standby CTP does not exist, none(1) is returned."
    ::= { bbSwInventory 7 }

bbSwInventoryImageTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbSwInventoryImageEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of software inventory images."
    ::= { bbSwInventory 8 }

bbSwInventoryImageEntry OBJECT-TYPE
    SYNTAX      BbSwInventoryImageEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry of the software inventory image release table."
    INDEX { 
            bbSwInventoryImageLocation,
            bbSwInventoryImageType,
            bbSwInventoryImagePackage,
            bbSwInventoryImageRelease
    }
    ::= { bbSwInventoryImageTable 1}

BbSwInventoryImageEntry ::=
    SEQUENCE {
        bbSwInventoryImageLocation              INTEGER,
        bbSwInventoryImageType                  INTEGER,
        bbSwInventoryImagePackage               INTEGER,
        bbSwInventoryImageRelease               DisplayString,
        bbSwInventoryImageBuildTime             BbDateAndTime,
        bbSwInventoryImageInstallationTime      BbDateAndTime,
        bbSwInventoryImageDescription           DisplayString
    }

bbSwInventoryImageLocation OBJECT-TYPE
    SYNTAX INTEGER {
        activeCTP(1),
        standbyCTP(2)
    }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The storage location of this image."
    ::= { bbSwInventoryImageEntry 1 }

bbSwInventoryImageType OBJECT-TYPE
    SYNTAX INTEGER {
        current(1),
        backup(2)
    }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicates the type of the image. current(1) 
        indicates the running version, while backup(2) indicates 
        the version that the user can fallback on."
    ::= { bbSwInventoryImageEntry 2 }

bbSwInventoryImagePackage OBJECT-TYPE
    SYNTAX INTEGER {
        master(1),
        platform(2),
        services(3)
    }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object indicates the image package."
    ::= { bbSwInventoryImageEntry 3 }

bbSwInventoryImageRelease OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(1..20))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The release number of this image."
    ::= { bbSwInventoryImageEntry 4 }

bbSwInventoryImageBuildTime OBJECT-TYPE
    SYNTAX      BbDateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The date and time that this image was built."
    ::= { bbSwInventoryImageEntry 5 }

bbSwInventoryImageInstallationTime OBJECT-TYPE
    SYNTAX      BbDateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The date and time that this image was installed."
    ::= { bbSwInventoryImageEntry 6 }

bbSwInventoryImageDescription OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The description of this image."
    ::= { bbSwInventoryImageEntry 7 }


bbSwInventoryUpgradeStatusDescription  OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The description of the Upgrade status if the object 
        bbSwInventoryUpgradeStatus returns failed(4)."
    ::= { bbSwInventory 9 }


------------------------------------------------------------------------
--
-- Performance Monitor Group
--
-----------------------------------------------------------------------

bbPerfPaddlePair      OBJECT IDENTIFIER ::= { bbPerf 1 }
bbPerfPort            OBJECT IDENTIFIER ::= { bbPerf 2 }
bbPerfThresholdAlert  OBJECT IDENTIFIER ::= { bbPerf 3 }

                
        -- ****************************************
        -- Perf PaddlePair
        -- ****************************************

bbPerfPaddlePairTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BbPerfPaddlePairEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table of paddle pair performance monitor."
    ::= { bbPerfPaddlePair 1 }

bbPerfPaddlePairEntry OBJECT-TYPE
    SYNTAX     BbPerfPaddlePairEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A set of paddle pair performance monitoring entries."
    INDEX { 
        bbPerfPaddlePairSlotNumber, 
        bbPerfPaddlePairID 
    }
    ::= { bbPerfPaddlePairTable 1 }

BbPerfPaddlePairEntry ::=
        SEQUENCE  {
            bbPerfPaddlePairSlotNumber          BbSlotNumber,
            bbPerfPaddlePairID                  BbPaddlePairID,
            bbPerfPaddlePairThroughput          Integer32,
            bbPerfPaddlePairByteRate            CounterBasedGauge64,
            bbPerfPaddlePairActualOverSub       TruthValue
        }

bbPerfPaddlePairSlotNumber   OBJECT-TYPE
    SYNTAX      BbSlotNumber
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The unique index to identify the slot. It equals the slot number + 1."
    ::= { bbPerfPaddlePairEntry 1 }

bbPerfPaddlePairID OBJECT-TYPE
    SYNTAX      BbPaddlePairID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The unique index to identify the paddle pair (1-2)"
    ::= { bbPerfPaddlePairEntry 2 }

bbPerfPaddlePairThroughput OBJECT-TYPE
    SYNTAX      Integer32 
    UNITS       "percentage"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The bandwidth utilization of the paddle pair 
        ((Tx Rate + Rx Rate)/paddle pair bandwidth). 
           This number ranges from 0 - 100."
    ::= { bbPerfPaddlePairEntry 3 }

bbPerfPaddlePairByteRate   OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The total (Tx + Rx) Bps of the paddle pair."
    ::= { bbPerfPaddlePairEntry 4 }

bbPerfPaddlePairActualOverSub   OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates whether the paddlepair is
        actually oversubscribed or not. If the paddlepair's throughput
        on LMQ is greater than 80% then it means it is experiencing
        actual oversubscription. The throughput percentage is not
        configurable in this release."
    ::= { bbPerfPaddlePairEntry 5 }

        -- ****************************************
        -- Perf Port
        -- ****************************************

bbPerfPortTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BbPerfPortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table of port performance monitor."
    ::= { bbPerfPort 1 }

bbPerfPortEntry OBJECT-TYPE
    SYNTAX     BbPerfPortEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry to the port performance monitoring table."
    INDEX { bbPerfPortIndex }
    ::= { bbPerfPortTable 1 }

BbPerfPortEntry ::=
    SEQUENCE {
        bbPerfPortIndex             BbPortIndex,
        bbPerfPortTxThroughput      Integer32,
        bbPerfPortRxThroughput      Integer32,
        bbPerfPortErrorRate         Gauge32,
        bbPerfPortTxRate            Gauge32,  
        bbPerfPortRxRate            Gauge32
    
    }

bbPerfPortIndex OBJECT-TYPE
    SYNTAX      BbPortIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "The unique port index to identify the port. It equals the port number + 1"
    ::= { bbPerfPortEntry 1 }

bbPerfPortTxThroughput  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "percentage"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Tx bandwidth utilization of this port (Tx Rate/port bandwidth).
         This number ranges from 0 to 100."
    ::= { bbPerfPortEntry 2 }

bbPerfPortRxThroughput  OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "percentage"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Rx bandwidth utilization of this port (Rx Rate/port bandwidth).
         This number ranges from 0 to 100."
    ::= { bbPerfPortEntry 3 }

bbPerfPortErrorRate       OBJECT-TYPE
    SYNTAX      Gauge32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The error rate of the port."
    ::= { bbPerfPortEntry 4 }

bbPerfPortTxRate OBJECT-TYPE
    SYNTAX      Gauge32
    UNITS       "Bps"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Bps (bytes per second) transmission rate of the port."
    ::= { bbPerfPortEntry 5 }

bbPerfPortRxRate OBJECT-TYPE
    SYNTAX      Gauge32 
    UNITS       "Bps"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Bps (bytes per second) reception rate of the port."
    ::= { bbPerfPortEntry 6 }


        -- ****************************************
        -- Threshold Alert
        -- ****************************************
bbPerfThresholdAlertNumber OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
          "The number of entries in the threshold alert table ."
    ::= { bbPerfThresholdAlert 1 }
    
bbPerfThresholdAlertNextAvailableIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The next available index in the threshold alert table that can be 
         used to add a new threshold alert.
         If the table is full, a read on this object will return 0."
    ::= { bbPerfThresholdAlert 2 }
    
bbPerfThresholdAlertTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BbPerfThresholdAlertEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table that contains configured threshold alerts."
    ::= { bbPerfThresholdAlert 3 }

bbPerfThresholdAlertEntry OBJECT-TYPE
    SYNTAX     BbPerfThresholdAlertEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry containing a threshold alert configuration."
    INDEX { bbPerfThresholdAlertIndex }
    ::= { bbPerfThresholdAlertTable 1 }

BbPerfThresholdAlertEntry ::=
    SEQUENCE  {
        bbPerfThresholdAlertIndex               Integer32,
        bbPerfThresholdAlertName                DisplayString,
        bbPerfThresholdAlertScope               INTEGER,
        bbPerfThresholdAlertType                INTEGER,
        bbPerfThresholdAlertPortList            BbPortList,
        bbPerfThresholdAlertInterval            Integer32,
        bbPerfThresholdAlertDurationTime        Integer32,
        bbPerfThresholdAlertThroughputDirection INTEGER,
        bbPerfThresholdAlertUtilization         Integer32,
        bbPerfThresholdAlertCounterId           INTEGER,
        bbPerfThresholdAlertCounterDelta        CounterBasedGauge64,
        bbPerfThresholdAlertRowStatus           RowStatus
    }
                                                
bbPerfThresholdAlertIndex OBJECT-TYPE
    SYNTAX      Integer32(1..16)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION    
        "This object is used to identify which threshold has been triggered."
    ::= { bbPerfThresholdAlertEntry 1 }

bbPerfThresholdAlertName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The threshold alert name."
    ::= { bbPerfThresholdAlertEntry 2 }

bbPerfThresholdAlertScope OBJECT-TYPE
    SYNTAX      INTEGER {
                      portList(1),
                      ePorts(2),
                      fPorts(3),
                      paddlePairList(4),
                      lmq(5)
                 }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "A threshold can be set on a list of physical port numbers, 
        or on a list of paddle pair numbers,  or on all the ports 
        of the specified type (ePorts, fPorts)."
    ::= { bbPerfThresholdAlertEntry 3 }

bbPerfThresholdAlertType OBJECT-TYPE
    SYNTAX      INTEGER {
                      counter (1),
                      throughput(2)
                 }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The type of the threshold alert."
    ::= { bbPerfThresholdAlertEntry 4 }

bbPerfThresholdAlertPortList OBJECT-TYPE
    SYNTAX      BbPortList
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
         "This object is used as a bit map to specify the port list or 
         the paddle pair list that this threshold alert applies to. It 
         is valid only when the threshold alert scope is set to the  
         portList or the paddlePairList.  The left most bit represents 
         the port 0/paddlepair 0.  The linear paddlepair number ranges 
         from 0 to 15. It equals slotNumber*2+paddlepairNumber where 
         slotNumber is 0-7, paddlePairNumber is 0-1.  If the scope of 
         the threshold alert is port list or paddle pair list, this object 
         must be set, otherwise the creation of the threshold alert will fail."
    ::= { bbPerfThresholdAlertEntry 5 }

bbPerfThresholdAlertInterval OBJECT-TYPE
    SYNTAX      Integer32(1..70560)
    UNITS       "minutes"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This number specifies at what rate the embedded software will 
        continue generating alerts as the threshold condition persists."
    DEFVAL      { 1 }
    ::= { bbPerfThresholdAlertEntry 6 }

bbPerfThresholdAlertDurationTime OBJECT-TYPE
    SYNTAX      Integer32
    UNITS       "minutes"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This only applies when the alert type is throughput.  It specifies 
        the amount of time during a threshold alert interval that the trigger 
        must be exceeded before an alert is generated.  If the duration time 
        is set to zero, an alert is sent if the port ever reaches the specified 
        threshold value"
    DEFVAL      { 0 }
    ::= { bbPerfThresholdAlertEntry 7 }

bbPerfThresholdAlertThroughputDirection OBJECT-TYPE
    SYNTAX      INTEGER {
                      none (1),
                      transmit (2),
                      receive (3),
                      both(4)
                 }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This only applies when the alert type is a throughput.
        It specifies the throughput direction of the threshold."
    DEFVAL      { 1 }
    ::= { bbPerfThresholdAlertEntry 8 }

bbPerfThresholdAlertUtilization OBJECT-TYPE
    SYNTAX      Integer32(1..100)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This only applies when the threshold alert type is throughput.  
        This is the percent utilization (1-100) required to trigger an alert."
    DEFVAL      { 90 }
    ::= { bbPerfThresholdAlertEntry 9 }

bbPerfThresholdAlertCounterId OBJECT-TYPE
    SYNTAX      INTEGER {
        none(1),
        -- counter 2-49 are from FCMGMT connUnitPortStatTable.
        -- the associate oid is 'connUnitPortStat' + the counter id enum label.
        -- for instance, thd oid of 'countError' is 'connUnitPortStatCountError. 
        countError (2),         
        countTxObjects (3),             
        countRxObjects (4),
        countTxElements (5),
        countRxElements (6),
        countBBCreditZero (7),
        countInputBuffersFull (8),
        countFBSYFrames (9),
        countPBSYFrames (10),
        countFRJTFrames (11),
        countPRJTFrames (12),
        countClass1RxFrames (13),
        countClass1TxFrames (14),
        countClass1FBSYFrames (15),
        countClass1PBSYFrames (16),
        countClass1FRJTFrames (17),
        countClass1PRJTFrames (18),
        countClass2RxFrames (19),
        countClass2TxFrames (20),
        countClass2FBSYFrames (21),
        countClass2PBSYFrames (22),
        countClass2FRJTFrames (23),
        countClass2PRJTFrames (24),
        countClass3RxFrames (25),
        countClass3TxFrames (26),
        countClass3Discards (27),
        countRxMulticastObjects (28),
        countTxMulticastObjects (29),
        countRxBroadcastObjects (30),
        countTxBroadcastObjects (31),
        countRxLinkResets (32),
        countTxLinkResets (33),
        countNumberLinkResets (34),
        countRxOfflineSequences (35),
        countTxOfflineSequences (36),
        countNumberOfflineSequences (37),
        countLinkFailures (38),
        countInvalidCRC (39),
        countInvalidTxWords (40),
        countPrimitiveSequenceProtocolErrors (41),
        countLossofSignal (42),
        countLossofSynchronization (43),
        countInvalidOrderedSets (44),
        countFramesTooLong (45),
        countFramesTruncated (46),
        countAddressErrors (47),
        countDelimiterErrors (48),
        countEncodingDisparityErrors (49),

        -- counter 50-53 are from EOSN-MIB bbFcPortStatsTable.
        -- the oid of the associate counter is 'bbFcPortStats' + the enum label.
        -- for instance, the oid of 'txC2Octets' is 'bbFcPortStatsTx2Octets'.
        txC2Octets (50),
        rxC2Octets (51),
        txC3Octets (52),
        rxC3Octets (53),

        -- following IDs apply to pre-defined counter sets 
        physicalLinkErrorsSummedSet(100),
            -- physicalLinkErrorsSummedSet includes
            -- Link Failures
            -- Sync Losses
            -- Signal Losses
            -- Primitive Sequence Errors/Protocol Errors
            -- Invalid Tx Words
            -- CRC Errors
            -- Frames Too Short
            -- Delimiter Errors         
        linkSequenceCountsSummedSet(101),
            -- linkSequenceCountsSummedSet includes
            -- Link Resets Received
            -- Link Resets Sent
            -- OLS Received
            -- OLS Sent
            -- LIPS Generated
            -- LIPS Detected (Teton)
        logicalLinkErrorsSummedSet(102)
            -- logicalLinkErrorsSummedSet includes:
            -- Discarded Frames
            -- Address ID Errors
            -- Class 2 Busied Frames
            -- Class 2 Rejected Frames
            -- Class 3 Discarded Frames
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This only applies when the alert type is counter.  It specifies 
        statistical counter to be monitored.  If the value 
        bbPerfThresholdAlertType is 'counter', this object must be 
        set otherwise the creation of the threshold alert will fail."
    DEFVAL      { 1 }
    ::= { bbPerfThresholdAlertEntry 10 }

bbPerfThresholdAlertCounterDelta OBJECT-TYPE
    SYNTAX      CounterBasedGauge64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This only applies when the alert type is counter.
         It specifies incremental value for a counter.
         If the value bbPerfThresholdAlertType is 'counter', this
         object must be set otherwise the creation of the threshold alert will fail."
    ::= { bbPerfThresholdAlertEntry 11 }

bbPerfThresholdAlertRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to create a new row or modify/delete an existing 
        row in this table.
        Supported are active(1), notInService(2), createAndGo(4), destroy(6).
        To modfiy existing row bbPerfThresholdAlertRowStatus should not be set"
    ::= { bbPerfThresholdAlertEntry 12 }

------------------------------------------------------------------------
--
-- FTP Group 
--
-----------------------------------------------------------------------

bbFtpHost OBJECT-TYPE
    SYNTAX      IpAddress 
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates the IP address of the FTP server. 
        Any SET request to this object requires the bbFtpStatus to 
        be not in the inProgress(2) state."
    ::= { bbFtp 1 }

bbFtpUserName OBJECT-TYPE
    SYNTAX        DisplayString (SIZE (0..64))
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION   
       "This object indicates the user name used to login to the FTP 
       server. Any SET request to this object requires the bbFtpStatus 
       to be not in the inProgress(2) state."
    ::= { bbFtp 2 }

bbFtpUserPassword OBJECT-TYPE
    SYNTAX        DisplayString (SIZE (0..64))
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION   
       "This object indicates the user password used to be authenticated 
       by the FTP Server. Upon a GET request, it returns ***** if the password
       is set, otherwise an empty string.  A SET request to this object 
       requires the bbFtpStatus to be not in the inProgress(2) state."
    ::= { bbFtp 3 }

bbFtpFileType OBJECT-TYPE
    SYNTAX INTEGER {
        none(1),
        config(2),          -- Save/Restore Configuration files
        softwareImage(3)    -- Software Image files
    }
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION   
       "This object indicates the type of file to be transferred.  Any 
       SET request to this object requires the bbFtpStatus to be not in
       inProgress(2) state.  A GET returns the last SET operation, and 
       none(1) is returned if no previous operation has been performed.
       Setting the value of this object to none(1) will result in error."
    ::= { bbFtp 4 }

bbFtpFileName OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION   
        "This object indicates the name of the file to be transferred.
        Any SET request to this object requires the bbFtpStatus to be 
        not in the inProgress(2) state."
    ::= { bbFtp 5 }

bbFtpStatus OBJECT-TYPE
    SYNTAX INTEGER { 
        none(1),
        inProgress(2),
        succeeded(3),
        failed(4),
        connectionFailed(5),
        loginFailed(6),
        fileReadFailed(7),
        fileDownloadError(8),
        fileCreateError(9),
        fileUploadError(10)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the status of the file transfer operation."
    ::= { bbFtp 6 }

------------------------------------------------------------------------
--
-- OSMS
--
------------------------------------------------------------------------

bbVfOsmsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbVfOsmsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The OSMS configuration table"
    ::= { bbVfOsms 1 }

bbVfOsmsEntry OBJECT-TYPE
    SYNTAX      BbVfOsmsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry into osms table.  There is one instance per Virtual Switch."
    AUGMENTS   { bbVfEntry }
        ::= { bbVfOsmsTable 1 }

BbVfOsmsEntry ::=
    SEQUENCE {
        bbVfOsmsState                             BbEnabledStatus,
        bbVfOsmsHostControlProhibitState          BbEnabledStatus
    }

bbVfOsmsState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to enable and disable the Open Systems
        Management Server on this Virtual Fabric"
    ::= { bbVfOsmsEntry 1 }

bbVfOsmsHostControlProhibitState OBJECT-TYPE
    SYNTAX      BbEnabledStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to enable and disable the OSMS
        Host Control Prohibited flag on this Virtual Fabric."
    ::= { bbVfOsmsEntry 2 }


------------------------------------------------------------------------
-- AFD Group
-- Port Fencing
--
-----------------------------------------------------------------------

bbPortFencingTotalPolicy OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
          "The number of policies in the port fencing table ."
    ::= { bbPortFencing 1 }
    
bbPortFencingTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BbPortFencingEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table that contains configured policies."
    ::= { bbPortFencing 2 }

bbPortFencingEntry OBJECT-TYPE
    SYNTAX    BbPortFencingEntry 
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry containing a policy."
    INDEX { bbPortFencingPolicyName }
    ::= { bbPortFencingTable 1 }

BbPortFencingEntry ::=
    SEQUENCE  {
        bbPortFencingPolicyName         DisplayString,
        bbPortFencingScope              INTEGER,
        bbPortFencingType               INTEGER,
        bbPortFencingPortList           BbPortList,
        bbPortFencingLimit              Integer32,
        bbPortFencingPeriod             Integer32,
        bbPortFencingRowStatus          RowStatus
    }
                                                
bbPortFencingPolicyName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..64))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The policy name."
    ::= { bbPortFencingEntry 1 }

bbPortFencingScope OBJECT-TYPE
    SYNTAX      INTEGER {
                      portList(1),
                      ePorts(2),
                      fPorts(3),
                      default(4)
                 }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This attribute specifies the set of ports on which the
         policy will be enforced. default means apply the policy to
         all ports which are not specifically covered by another policy"
    DEFVAL      { default }
    ::= { bbPortFencingEntry 2 }

bbPortFencingType OBJECT-TYPE
    SYNTAX      INTEGER {
                      securityViolation (1),
                      protocolError(2),
                      linkLevelHotIO(3)
                 }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The type of fencing policy."
    DEFVAL      { protocolError }
    ::= { bbPortFencingEntry 3 }

bbPortFencingPortList OBJECT-TYPE
    SYNTAX      BbPortList
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
         "This object is used as a bit map to specify the port list 
         It is valid only when the policy scope is set to the  
         portList.  If the scope of the policy is port list, this object 
         must be set, otherwise the creation of the policy will fail.
        The bytes are read from left to right.  Within a byte the bits are
        read from right to the left.  Port 0 is in the first byte on the
        leftmost part of the string & the bit is in the righmost position within
        that byte."
    ::= { bbPortFencingEntry 4 }

bbPortFencingLimit OBJECT-TYPE
    SYNTAX      Integer32(1..65536)
    UNITS       "count"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is the count of violcation which must occur within
         a specified amoun of time in order for the eosn software to
         fence the port."
    DEFVAL      { 5 }
    ::= { bbPortFencingEntry 5 }

bbPortFencingPeriod OBJECT-TYPE
    SYNTAX      Integer32(5..1800)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is the period of time in which the violation count must 
        equal or exceed the threshold limit in order for a port to be fenced."
    DEFVAL      { 300 }
    ::= { bbPortFencingEntry 6 }

bbPortFencingRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to create a new row or modify/delete an existing 
        row in this table."
    ::= { bbPortFencingEntry 7 }

------------------------------------------------------------------------

-- SNMP Group

bbSnmpResponseString OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "Proprietary object used for internal processing."
    ::= { bbSnmp 1 }

END